【发布时间】:2012-03-19 23:49:44
【问题描述】:
我有一系列继承的对象,它们都非常相似,只有几个字段在类之间有所不同。在这个类层次结构的基础上是一个抽象类,它包含所有后续对象应该具有的许多字段。像这样的:
abstractBase
obj1 : abstractBase
obj2 : obj1
obj3 : obj2
显示这些对象的视图对于所有对象来说基本上是相同的,我只是引入了新的 div 来显示不同的数据。由于我对 MVC 相当陌生,因此我只有两个主要选择:
一种方法是为每个具体对象创建强类型视图。每个视图都非常相似,但底层对象略有不同。在我看来,这违反了 DRY 原则,因为每个视图的 90% 或更多内容将在下一个视图中重复。但从好的方面来说,这些观点没有任何重要的逻辑。
另一种方法是将视图绑定到基本抽象类,然后对继承的类进行检查以确定是否需要渲染某些内容。类似:
if (Model.baseObject is obj3){ render out the special fields }
从好的方面来说,我不会违反 DRY 原则,我认为这是一件好事。但不利的一面是,视图将包含逻辑。据我了解,这或多或少是不赞成的。
- 有人遇到过类似情况吗?
- 您采取了什么方法?
- 还有其他我没有看到/不知道的选项吗?
现在我倾向于*更重的视图和更少的冗余代码。看起来好多了。
谢谢
【问题讨论】:
标签: asp.net-mvc dry asp.net-mvc-views