【问题标题】:How to call Html.Display for a custom object, not the whole Model?如何为自定义对象而不是整个模型调用 Html.Display?
【发布时间】:2011-10-01 13:35:43
【问题描述】:

我的 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,但是有没有办法不用单独的视图?

【问题讨论】:

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


    【解决方案1】:

    ~/Views/Shared/DisplayTemplates 内创建一个名为Person.cshtml 的局部视图文件。将其强类型化为Person 类。

    实现视图的结构。

    然后当你像下面这样调用它(根据你的情况),你会得到你所期望的:

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

    【讨论】:

    • 非常感谢!顺便说一句,我不需要自定义模板,我只是没想过使用@Html.DisplayFor(m =&gt; person)而不使用m =&gt; m.Something :)
    猜你喜欢
    • 2011-01-27
    • 2020-03-18
    • 2016-12-06
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 2015-10-18
    相关资源
    最近更新 更多