#jquery #asp.net-mvc
#jquery #asp.net-mvc
Вопрос:
public class PostModel {
public string Value { get; set; }
public IList<TestModel> TestValues { get; set; }
}
public class TestModel {
public string Value { get; set; }
}
Скрипт jQuery:
var testValue1 = {
Value: "val2"
};
var testValue2 = {
Value: "val3"
};
var model = {
Value: "test",
TestValues: [testValue1 , testValue2]
};
jQuery.post(url, model, function (data) {
alert(data);
}
);
public ActionResult Test(PostModel model)
{
model.Value // is OK, = "test"
model.TestValues// is OK, count = 2
model.TestValues[0].Value // why is null ????
return Content("Ok");
}
Как привязывать вложенные объекты?
Ответ №1:
Данные json, отправленные на контроллер MVC, должны представлять собой набор пар ключ-значение, представляющих имена и значения отправленной формы. Для привязки к сложной модели вам нужно отправить что-то вроде этого.
var jsonData = {};
jsonData['TestValues[0].Value'] = '...';
jsonData['TestValues[1].Value'] = '...'; // binds to model.TestValues[1].Value
jsonData['Value'] = '...'; // binds to model.Value
$.post(url, jsonData, ...);