2011-01-13 3 views
4

키/값 쌍 목록이 있습니다. 의 ViewModel 양식 내가 Html.DisplayFor를 (사용하려고 시도하는 키와 값 respectively.Im에 대한 레이블 및 텍스트 상자를 렌더링 할 필요가보기에Html.DisplayFor() Asp.Net MVC 항목 목록에 대한

public class ViewModel 
{ 
    public String Key { get; set; } 
    public String Value { get; set; } 
} 

의 사용자 정의 클래스 기본적으로 자사의 목록) 그러나 그것은 함께 간다 모델이며 모델 목록의 속성 만 표시하며 목록은 표시하지 않습니다.

나는 당신이 모델의 각 항목에 대해 렌더링됩니다 기본보기 내부 편집기 템플릿을 사용하여 시도 할 수있는 형식의 무언가

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

    <tr> 

     <td> 
      <%:Html.Display("item")%> 
     </td> 
    <td> 
      <%:Html.Display("item.Value")%> 
     </td> 
    </tr> 

<% } %> 

답변

2

을 달성하고자하는 (모델을 가정하는 것은 모음입니다). 편집기 템플리트는 편집을 허용하는 텍스트 상자를 렌더링하므로 화면 템플리트보다 시나리오에 더 적합합니다.

<table> 
    <%= Html.EditorForModel() %> 
</table> 

다음 뷰 모델 편집기 템플릿 (~/Views/Home/EditorTemplates/ViewModel.ascx) 정의 :

<%@ Control 
    Language="C#" 
    Inherits="System.Web.Mvc.ViewUserControl<YourAppName.Models.ViewModel>" %> 
<tr> 
    <td> 
     <%: Model.Key %> 
    </td> 
    <td> 
     <%= Html.TextBoxFor(x => x.Value) %> 
    </td> 
</tr> 
을 그래서 EditorFor 오히려 DisplayFor 이상을 사용하는 것이 의미 적으로 더 정확한 것
관련 문제