Asp.net mvc MVC@Html.DisplayForModel()不同的视图

Asp.net mvc MVC@Html.DisplayForModel()不同的视图,asp.net-mvc,Asp.net Mvc,我刚刚开始学习MVC 我知道您可以在Shared/DisplayTemplates中创建强类型视图,然后从控制器返回列表后,您可以执行@Html.DisplayForModel(),它将使用该视图作为整个列表的模板 但是,如果我不总是希望模型以我在这个DisplayTemplate中指定的方式构建,该怎么办?如何创建不同的显示模板 显而易见的方法似乎是为每个对象创建一个模板,然后执行以下操作 @foreach(var item in Model) { @Html.DisplayFor(x

我刚刚开始学习MVC

我知道您可以在Shared/DisplayTemplates中创建强类型视图,然后从控制器返回列表后,您可以执行@Html.DisplayForModel(),它将使用该视图作为整个列表的模板

但是,如果我不总是希望模型以我在这个DisplayTemplate中指定的方式构建,该怎么办?如何创建不同的显示模板

显而易见的方法似乎是为每个对象创建一个模板,然后执行以下操作

@foreach(var item in Model)
{
    @Html.DisplayFor(x=>x, "AlternativeTemplate")
}

…但是,由于您现在使用了foreach,它看起来并不优雅。

您是对的,您可以使用DisplayForModel重载,该重载将字符串参数作为模板名称


您只需在Views/Shared/DisplayTemplates下使用字符串中给出的确切名称定义模板。

在安装了VS的pc上不必这样做,但如果您不能用一点linq
Model.ToList().ForEach(m=>Html.DisplayFor(x=>x,“AltTemplate”)