我有这个类(class):
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 Helpers 的正确方法吗?如果我更改 Bars[1] 的值然后发布到 controller 它将更新模型中的值?最后,我如何使用 foo View 创建动态条并将它们分配给 foo 的条列表模型?
最佳答案
要显示所有 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?
关于c# - 使用 html 帮助程序在 asp.net mvc 中显示导航属性的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36368911/