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