到达/访问MVC中IEnumerable对象中的特定索引

时间:2012-12-02 08:03:25

标签: asp.net-mvc asp.net-mvc-3

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

我知道我可以通过以下代码覆盖所有项目:

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

但我需要通过这样做来访问第三项(作为示例):     模型[3] .FoodName

有没有办法从MVC中的IEnumerable对象到达特定的索引项?

1 个答案:

答案 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,...),这是首选方法,因为这样就会为它们分配正确的名称。