ASP.NETMVC3:特定于实现的输出视图我有一个基本类型IEnumerable作为我的模型。我需要根据确切的类型在列表中显示不同的HTML。因此,结果列表可能看起来像HTML格式:我可能稍后会添加另一种类型,所以下面的解决方案并不是我真正想要的。@foreach(模型中的变量项目){if(项目是PointImpl){varpointItem=itemasPointImpl;点-@pointItem.Name-@pointItem.PointspointsRemove}elseif(itemisMediaImpl){varmediaItem=itemasMediaImpl;Media-@mediaItem.Name-@mediaItem.FileNameRemove}/*Moreimplementations*/}我已经查看了模型元数据模板提示,但这并没有真正帮助,因为我的模型是IEnumerable..我正在考虑A自定义HtmlHelper来查看具体类型的属性,但认为可能有内置的方法来执行此操作?而不是丑陋的foreach只需使用显示模板:@modelIEnumerable然后为所有子类型定义显示模板。例如:~/Views/Shared/DisplayTemplates/PointImpl.cshtml:@modelPointImplPoints-@Model.Name-@Model.PointspointsRemoveand:~/Views/Shared/DisplayTemplates/MediaImpl.cshtml:@modelMediaImplMedia-@Model.Name-@Model.FileNameRemoveLook,没有更多的ifs,没有更多的循环,没有更多的变量。一切都按约定工作(模板必须位于~/Views/Shared/DisplayTemplates或~/Views/SomeController/DisplayTemplates文件夹中,并且应以具体类型的名称命名-PointImpl.cshtml、MediaImpl.cshtml,...).根据类型,将自动为主模型集合的每个元素呈现相应的显示模板。以上就是C#学习教程:ASP.NETMVC3:具体视图具体实现的输出分享所有内容。代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
