我刚开始使用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; }
}
答案 0 :(得分:0)
您可以使用
<%: Html.LabelFor(x => x.MyProp1) %>
在标签标签中显示MyProp1的显示名称,并
<%: Html.DisplayFor(x => x.MyProp1) %>
根据显示模板显示值(通常是纯文本,除非另有说明)
使用&lt;%:%&gt;也将自动编码生成的MvcString,如同&lt;%=%&gt;,它不编码它的内容。但是,此自动编码仅限于.NET 4.0环境,并且在以前的版本中不起作用。