6
我在MVC中构建一个站点,并将传递给View的视图模型包含一个自定义对象,该对象又包含一个IEnumarable自定义对象列表。.NET MVC Razor动态表单生成
这个想法是,剃刀会动态生成IEnumerable的表单,它可以是任意数量的对象。
@foreach (var data in Model.Kpi.Values)
{
<div class="editor-label">
@Html.Label(data.Field.Name);
</div>
<div class="editor-field">
@Html.EditorFor(model => data.Value)
@Html.ValidationMessageFor(model => data.Value)
</div>
}
表单显示完美,包括数据注释,但是IEnumerable在控制器post函数中为null。
[HttpPost]
public virtual ActionResult Create(KpiCreateViewModel vm)
{
return this.RedirectToAction(MVC.Kpi.Index());
}
我在return语句中放了一个断点并检查了vm变量的内容。
任何人都可以提出一种方法来检索表单数据?
在此先感谢
话虽如此,[此帖](http://stackoverflow.com/questions/1983999/how-to-use-editorfor-inside-a-foreach),建议你可以用'foreach'。但看看正在生成的名称,这应该给你一个线索。 –
这似乎已经完成了一半的战斗。该对象现在有一个值,但它没有Field.name。 澄清KpiValue类具有属性,Field对象,Kpi对象和Value字符串。 需要一些方法来识别“字段”。 – JConstantine