3

我需要从 IEnumerable @model 访问特定项目;

我知道我可以通过以下代码访问所有项目:

@foreach (var item in Model) {
    <tr>
        <td>
        @Html.DisplayFor(modelItem => item.FoodName)
        </td>
}

但是我需要通过这样做来访问第三项(例如):Model[3].FoodName

有什么方法可以从 MVC 中的 IEnumerable 对象到达特定的索引项?

4

1 回答 1

8

您可以使用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、...),这是首选方法,因为这样会为它们分配正确的名称。

于 2012-12-02T11:09:34.023 回答