2012-12-02 3 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

감사합니다. –

관련 문제