2011-01-13 68 views
4

我有一個鍵/值對列表。基本上它的一個List,視圖模型是一個自定義類的形式Asp.Net MVC中的Html.DisplayFor()列表項目

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

在查看我需要渲染鍵和值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>