2010-04-13 1 views
4

내 모델에 컬렉션 유형 (목록) 인 속성이 있습니다. 이 컬렉션 Html.DisplayFor 또는 Html.EditorFor의 각 항목에 대해 문의하고 싶습니다. 어떻게해야합니까?ASP.NET MVC 2 : 컬렉션의 각 항목에 대해 DisplayFor를 호출하는 방법은 무엇입니까?

편집 강력한 형식의보기가 아닙니다. 템플릿보기입니다. ViewData.ModelMetadata 만 있습니다.

+0

가능한 복제본은 http://stackoverflow.com/questions/1478378/using-html-editorfor-with-an-ienumerablet –

답변

2

보기에 어떤 것이 있습니까?

<% foreach (var item in Model.MyCollection) { %> 
    <%= html.EditorFor... %> 
    ... 
<% } %> 

using Html.EditorFor with an IEnumerable<T>

+0

입니다.하지만 사원보기에서이를 수행하는 방법. Model.items은 없습니다. 그냥 ViewData.ModelMetadata .. – user137348

+0

당신의 콜렉션이 ViewData 아이템에 있다면, foreach (MySemType item in (IEnumerable ) ViewData [ "MyCollection"])' –

+0

네,하지만 MyItemType은 뭐든지 될 수 있습니다. 템플릿을 만들려고합니다. 여기와 비슷한 내용 http://www.matthidinger.com/archive/2009/08/15/creating-a-html.displayformany-helper-for-mvc-2.aspx하지만 나는 표정 물건을 얻지 못한다 :-( – user137348

1

단지 모델에 'selectedItem가'속성을 추가한다 이렇게하는 가장 쉬운 방법을 참조하십시오 :

public class YourModel 
{ 

public IEnumberable<Item> YourCollection 
{ 
get; 
} 


public Item SelctedItem 
{ 
get; 
set; 
} 


} 

그런 다음 바로 selctedItem에 목록의 각 항목을 지정 속성 :

<% foreach (var item in Model.YourCollection) { %> 

Model.SelctedItem = item; 

<%= html.EditorFor(SelctedItem) %> 
    ... 
<% } %> 
8

시도해 볼 수 있습니까

<% foreach (var item in Model.MyCollection) { %> 
    <%= html.EditorFor(m=>item) %> 
<% } %> 
+0

나는 이것을 시도했는데, 실제로 작동합니다! – Kralizek

관련 문제