2012-12-02 86 views
2

我需要從IEnumerable @model訪問特定的項目;訪問/訪問MVC中的IEnumerable對象中的特定索引

我知道我可以通過下面的代碼到達所有項:

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

但我需要通過執行這樣的財產以後訪問所述第三項目(作爲例子): 模型[3] .FoodName

是否有任何方式從MVC中的IEnumerable對象到達特定的索引項?

+1

請參閱http://stackoverflow.com/questions/5326874/why-would-i-use-enumerable-elementat-versus-the-operator –

回答

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,...),首選的方法是因爲這種方式正確的名稱將被分配給它們。

+0

非常感謝,這就是幫助 –