我需要从IEnumerable @model访问特定项目;
我知道我可以通过以下代码覆盖所有项目:
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.FoodName)
</td>
}
但我需要通过这样做来访问第三项(作为示例): 模型[3] .FoodName
有没有办法从MVC中的IEnumerable对象到达特定的索引项?
答案 0 :(得分:6)
您可以使用ElementAt(index)
扩展方法:
Model.ElementAt(2)
或者将模型类型从IEnumerable<T>
更改为IList<T>
或T[]
:
@model IList<SomeViewModel>
现在你可以用索引循环:
@for (var i = 0; i < Model.Count; i++)
{
@Html.DisplayFor(x => x[i].FoodName)
}
如果您生成输入字段(EditorFor,TextBoxFor,...),这是首选方法,因为这样就会为它们分配正确的名称。