如何通过ASP.NET MVC视图展示继承自模型的复杂长尾词结构?
- 内容介绍
- 文章标签
- 相关推荐
本文共计433个文字,预计阅读时间需要2分钟。
我有多种不同类型的好处,但都继承自BaseBenefit类。列出BaseBenefit后,如何在视觉上使用它们以最好地展现它们?为了呈现它们,最佳做法是在视觉上创建一个清晰的分类体系,例如使用标签或图标来区分每种类型的好处。我尝试在图中进行了检查,但似乎破坏了某些混乱。
我有一组不同类型的“好处”,但都继承自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将自动为此列表的每个元素调用相应的显示模板.
本文共计433个文字,预计阅读时间需要2分钟。
我有多种不同类型的好处,但都继承自BaseBenefit类。列出BaseBenefit后,如何在视觉上使用它们以最好地展现它们?为了呈现它们,最佳做法是在视觉上创建一个清晰的分类体系,例如使用标签或图标来区分每种类型的好处。我尝试在图中进行了检查,但似乎破坏了某些混乱。
我有一组不同类型的“好处”,但都继承自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将自动为此列表的每个元素调用相应的显示模板.

