2011-01-13 5 views
4

У меня есть список пар ключ/значение. в основном его список, где ViewModel обычай класс формыHtml.DisplayFor() в Asp.Net MVC для списка элементов

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

В представлении я должен был бы вынести ярлык и Textbox для Key и Value respectively.Im пытается использовать Html.DisplayFor(), однако он идет с и отображает только свойства модели, а не список.

Я хотел бы добиться чего-то в формате

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

    <tr> 

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

<% } %> 

ответ

2

Вы можете попробовать использовать шаблон редактора внутри главного вида выдаваемого для каждого элемента модели (предполагается, что модель представляет собой набор). Шаблоны редакторов более подходят для вашего сценария, чем шаблоны отображения, потому что вы предоставляете текстовые поля, которые позволяют редактировать. Таким образом, было бы семантически правильнее использовать EditorFor, а не DisplayFor:

<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>