如何为自定义对象调用Html.Display,而不是整个模型?

时间:2011-10-01 13:35:44

标签: c# asp.net-mvc asp.net-mvc-3 razor

我的MVC3 Razor视图有以下视图模型:

 public class UserProfileModel
 {
     public Person[] Persons { get; set; }
     //some other fields
 }

我想在Razor视图中显示所有人:

foreach (var person in Model.Persons)
{
<div>
    @* some custom formatting *@
    @Html.Display(person)
</div>
}

@Html.Display@Html.DisplayFor似乎对我不起作用..

我可以使用Person作为模型创建一个单独的强制类型视图,并在那里调用@Html.DisplayForModel,但有没有办法可以在没有单独视图的情况下进行?

1 个答案:

答案 0 :(得分:15)

Person.cshtml内创建名为~/Views/Shared/DisplayTemplates的部分视图文件。强制键入Person类。

实施视图结构。

然后当您在(在您的情况下)下面调用它时,您将得到您所期望的:

foreach (var person in Model.Persons)
{
<div>
    @* some custom formatting *@
    @Html.DisplayFor(m => person)
</div>
}