我有这个课程:
public class Bar
{
public string Name;
}
puclic class Foo
{
public string Age {get;set;}
public List<Bar> Bars {get;set;}
}
我想在Foo View中显示每个Bar的信息,例如:
@Html.EditorFor(model => Model.Bars.ElementAt(1).Bar.Name)
这是使用Razor / Html助手的正确方法吗?如果我更改Bars [1]的值然后发布到控制器,它将更新模型中的值?最后,我如何使用foo视图动态创建条形图并将它们分配给foo的条形码列表模型?
答案 0 :(得分:1)
要显示所有Bar
项(并且能够提交参数为Foo model
的POST方法,那么您需要for
循环
for(int i = 0; i < Model.Bars.Count; i++)
{
@Html.TextBoxFor(m => m.Bars[i].Name)
}
或(更好),对EditorTemplate
Bar
/Views/Shared/EditorTemplates/Bar.cshtml
@Model.Bar
@Html.TextBoxFor(m => m.Name)
并在主视图中
@Html.EditorFor(m => m.Bars)
EditorFor()
方法会为集合中的每个项目生成正确的html
要动态添加和删除Bar
项,请参阅POST a form array without successful和Submit same Partial View called multiple times data to controller?