asp.net mvc在带有标题的表中显示集合

时间:2010-07-02 21:17:23

标签: asp.net-mvc-2

我刚开始使用asp.net mvc2进行一些Web开发。我试图找到一种方法来在我的视图中显示数据集合。以下是一个非常简单的视图标记,用于将集合显示为html表。

我的问题是人们在从集合构造表时通常会做什么。 如何处理列标题?我在所有对象的属性上都有“DisplayName”属性,并希望将它们用作表的列标题。

感谢,

<table>
    <thead>
        <tr>
            <th>???</th>
            <th>???</th>
            <th>???</th>
            <th>???</th>
            <th>???</th>
        </tr>
    </thead>
    <tbody>
    <%
      foreach(var item in Model)
      {
    %>
        <tr>
            <td><%= Html.Encode(item.MyProp1)%></td>
            <td><%= Html.Encode(item.MyProp2)%></td>
            <td><%= Html.Encode(item.MyProp3)%></td>
            <td><%= Html.Encode(item.MyProp4)%></td>
            <td><%= Html.Encode(item.MyProp5)%></td>
        </tr>
    <%
      }
    %>
    </tbody>
</table>

我的班级如下所示

public class MyClass
{
    [DisplayName("Dif Prop 1")]
    [DataMember]
    public string MyProp1{ get; set; }

    [DisplayName("Dif Prop 2")]
    [DataMember]
    public string MyProp2{ get; set; }

    [DisplayName("Dif Prop 3")]
    [DataMember]
    public string MyProp3{ get; set; }

    [DisplayName("Dif Prop 4")]
    [DataMember]
    public string MyProp4{ get; set; }

    [DisplayName("Dif Prop 5")]
    [DataMember]
    public string MyProp5{ get; set; }
}

1 个答案:

答案 0 :(得分:0)

您可以使用

<%: Html.LabelFor(x => x.MyProp1) %>

在标签标签中显示MyProp1的显示名称,并

<%: Html.DisplayFor(x => x.MyProp1) %>

根据显示模板显示值(通常是纯文本,除非另有说明)

使用&lt;%:%&gt;也将自动编码生成的MvcString,如同&lt;%=%&gt;,它不编码它的内容。但是,此自动编码仅限于.NET 4.0环境,并且在以前的版本中不起作用。