Кажется, у меня проблема с передачей объекта javascript, который содержит массив, на мой MVC-контроллер. У меня есть объект, который содержит две строки и строковый массив. Две строки связываются правильно, но как только я добавляю массив к объекту, я получаю следующую ошибку:привязка объекта json в MVC
Коллекция доступна только для чтения.
Вот мой JS + Ajax код:
$('.submit').on('click', function() {
var viewModel = {
FName: "John",
LName: "Doe",
DaysOfTheWeek: ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']
};
console.log(viewModel);
$.ajax({
url: "/Home/JsonMethod",
type: "POST",
data: JSON.stringify(viewModel),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function (data) {
console.log(data);
}
});
});
Вот мой MVC контроллер:
public JsonResult JsonMethod(Person person)
{
return Json(person, JsonRequestBehavior.AllowGet);
}
Вот класс Person:
public class Person
{
public string FName { get; set; }
public string LName { get; set; }
public string[] DaysOfTheWeek { get; set; }
public Person()
{
DaysOfTheWeek = new string[7];
}
}
У меня было смотреть онлайн, но я не могу найти ничего, что касается следующей проблемы. Любая помощь в этом вопросе была бы замечательной.
Вы пробовали использовать дженерики: Список вместо строки [] в классе Person? –
Изменил его из массива в список, и он сработал! Спасибо @Adam – gb1986