我有一个嵌套的视图模型结构:
public class PersonViewModel
{
public int Height { get; set; }
public List<LegViewModel> Legs {get;set;}
}
public class LegViewModel
{
public int Length { get; set; }
}
我使用 jquery post 向此发送一些 JSON:
<script>
$(function () {
$("#mybutton").click(function () {
$.ajax({
type: "POST",
data: {
Height: 23,
Legs: [
{
Length: 45,
}
]
}
});
});
});
</script>
<button id="mybutton">hello world!</button>
我发布到这个控制器动作:
[HttpPost]
public ActionResult Save(PersonViewModel model)
{
return Json(new { success = true });
}
的Height
aPersonViewModel
被填充,列表中的元素数量Legs
也是如此,但列表中的每个元素LegViewModel
都没有:Length
属性保持为 0,我希望Legs
数组包含一个Length
45 的元素。
请注意,当我根本不使用列表时,这也是相同的:具有以下内容会产生一个不为空的PersonViewModel.Legs property, but still as the
Legs.Length` 属性为 0:
// view model
public class PersonViewModel
{
public int Height { get; set; }
//public List<LegViewModel> Legs {get;set;}
public LegViewModel Leg { get; set; }
}
public class LegViewModel
{
public int Length { get; set; }
}
// view
$("#mybutton").click(function () {
$.ajax({
type: "POST",
data: {
Height: 23,
Leg:
{
Length: 45,
}
}
});
})
如何使用 JSON 填充嵌套视图模型?有什么我错过的或者 MVC 不能做到这一点吗?