asp.net-mvc – 在视图中显示包含MVC中继承的模型
我有一组不同类型的“好处”,但都继承自BaseBenefit类.该列表< BaseBenefit>然后在视图上使用.为了呈现它们,这里最好的做法是什么?
我虽然在视图中进行了检查,但是那时似乎打破了“愚蠢的IU”的规则.我可以为每个好处包含一个属性,以便它具有真实类型的枚举,但我仍然需要检查哪个是if的. 任何的想法? 解决方法
您可以使用显示模板.所以在主视图中:
@Html.DisplayFor(x => x.Benefits) 其中,Benefits是List< BaseBenefit>类型的视图模型上的属性.现在,您所要做的就是为不同的可能类型定义显示模板: ?/查看/共享/ DisplayTemplates / SpecificBenefit1.cshtml: @model SpecificBenefit1 ... ?/查看/共享/ DisplayTemplates / SpecificBenefit2.cshtml: @model SpecificBenefit2 ... 显示模板的位置和名称很重要.它们必须位于?/ Views / Shared / DisplayTemplates文件夹中,或者如果它们不在控制器之间重用,您也可以在?/ Views / SomeController / DisplayTemplates文件夹中定义它们.模板的名称必须与列表中元素的类型相同. 在可枚举属性的主视图中使用DisplayFor时,ASP.NET MVC将自动为此列表的每个元素调用相应的显示模板. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 使用响应对象生成PDF时的预加载器
- asp.net-mvc – MongoDB,C#,QueryFailure标志不是master而s
- asp.net-mvc – 如何将asp.net mvc视图渲染为angular 2?
- IdentityServer4 4.x版本 配置Scope的正确姿势
- asp.net-mvc – MVC AntiForgeryToken重用以前生成的令牌
- asp.net – 如何在我的代码中使用接口使其更加scalabale?
- asp.net-mvc-3 – MVC3 Html.BeginForm – 在RouteValueDic
- asp.net – 无法从[服务器]下载[文件]无法打开此Internet站
- “经典”ASP.NET页面和Microsoft MVC可以在同一个Web应用程
- .net – 在WebApi中,我应该在哪里调用ActionFilter之间保存
- asp.net-mvc-3 – 在Asp.Net MVC中,我对身份验证
- asp.net-mvc – 传递参数到我的部分视图?
- 使用ASP.NET成员资格提供程序的现成安全令牌服务
- 将我的ASP.NET MVC页面保存为pdf
- asp.net-mvc – EditorForModel – 使用editorfo
- asp.net – 自动修复与’ASPStateTempSessions’
- asp.net – 为什么设置为SqlServer时会话超时不起
- asp.net-mvc-3 – 将输入值传递给Action(ASP.Net
- asp.net – 按值查找TreeView节点
- asp.net-mvc – 版本弃用Facebook Graph API v2.