【发布时间】:2015-03-19 18:58:03
【问题描述】:
我的模型很少有简单的属性和一个嵌套
public class GridViewModel
{
public property1 {get;set;}
...
public List<Grid> Grids { get; set; }
}
public class Grid
{
public int GridID { get; set; }
public string GridName { get; set; }
public string Description { get; set; }
...
}
在我看来,我正在遍历 Model.Grids 并列出所有属性。当我将模型发布回控制器时,它返回 null。 我已按照 Haacked 说明如何绑定到列表 http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/ 我错过了什么吗? 在我看来,我尝试使用 HiddenFor、TextBoxFor 但什么都没有回来
@for (int k = 0; k < Model.Grids.Count(); k++ )
{
@Html.HiddenFor(modelItem => Model.Grids[k].GridID)
@Html.TextBoxFor(modelItem => Model.Grids[k].GridID)
@Html.DisplayFor(modelItem => Model.Grids[k].GridName)
@Html.DisplayFor(modelItem => Model.Grids[k].Description)
}
HTML 出来像
<input id="Grids_1__GridID" name="Grids[1].GridID" type="hidden" value="230">
<input id="Grids_2__GridID" name="Grids[2].GridID" type="hidden" value="231">
【问题讨论】:
-
DisplayFor不会呈现任何将发布的内容。使用HiddenFor或EditorFor -
@Marc 我确实尝试过为 GridID 属性使用 HiddenFor 和 EditorFor,但仍然没有发布任何内容。
-
请将答案与问题分开发布。
-
确定我会做@abatishchev
标签: c# asp.net-mvc-4 model-binding