在视图asp.net中显示复杂的对象属性

时间:2014-09-25 18:42:39

标签: asp.net-mvc

如果我有两个型号

class Person {
 public string Name {get;set;}
 public DateOfBirth DOB {get;set;}
}

class DateOfBirth {
 public int Year {get;set;}
 public int Month {get;set;}
 public int Day {get;set;}
}

以及尝试显示此信息的视图

@model Person
@foreach (var item in Model) {
<tr>
 <td>
  @Html.DisplayFor(modelItem => item.Name)
 </td>
 <td>
  @Html.DisplayFor(modelItem => item.DOB.Year)
 </td>
</tr>

从复杂对象获取值/信息的正确方法是什么&#34; DateOfBirth&#34;? 我目前正在尝试此操作,并且未显示年份值,但显示的是名称,因为它只是一个字符串。

谢谢你们!

1 个答案:

答案 0 :(得分:1)

我认为你让DisplayFor让事情变得过于复杂。你可能想做这样的事情:

@model IEnumerable<Person>
@foreach (var person in Model) {
<tr>
 <td>
  @person.Name
 </td>
 <td>
  @person.DOB.Year
 </td>
</tr>

当您开始构建更大的产品时,编辑器和显示模板将允许您在需要显示视图模型的基本信息时重复使用大量代码。但就目前而言,这可能比您需要的更为先进。