我有这样的看法:
@model Foo
@Html.DisplayFor(model => model.FooName);
@{
int counter = -1;
}
@foreach(var bar in Model.Bars)
{
counter++;
<tr>
<td><span name = "Bars[@counter].BarName">@bar.BarName</span></td>
</tr>
}
在哪里:
class Foo
{
public string FooName { get; set; }
public ICollection<Bar> Bars { get; set; }
}
class Bar
{
public string BarName { get; set; }
}
即使我的观点是正确的,但是当我回发Foo
时,它也不会回发其Bars
。
public ActionResult DoStuffWithFoo(Foo foo)
{
Debug.Assert(foo.Bars != null); // fails
}
我已经从这个问题中省略了不必要的和显而易见的部分,例如表格的标记。
您应该了解,在form
发布时,您只发布了值,inputs
因此您应该这样:
@for(var i = 0; i < Model.Bars.Count(); i++)
{
<tr>
<td><span>@Html.TextBoxFor(x=> Model.Bars[i].BarName)</span></td>
</tr>
}
Html.TextBoxFor
帮助程序创建input
,您可以将其发布到控制器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句