考虑为需要构建模型的真实世界应用程序提供2个选项,如果您愿意,可以从各种来源创建复合模型选择使用强类型观点:是复合模型的强类型ASP.NET MVC视图
与用于每条信息需要被传递到视图阶段的属性模型创建新的自定义类,
限制模型原始域类和链一起使用Html.RenderAction中的多个控制器。
选项1的不足之处在于需要创建大量“管道”类。选项2的不足之处在于违反了关注点分离的肮脏感,并且通过控制器链来跟踪更具体的问题,以找到能够呈现如此这样的HTML片段的人。
在ASP.Net MVC出现之前,我以前使用Maverick.Net多年,并且使用它的模型是传递给XSL视图阶段的一大块XML。在ASP.Net MVC中,它将等同于将模型作为ViewDictionary中的一组键值对传递给视图阶段。缺点是没有编译时间检查关键名称,但根据我的经验,关键名称很少会改变。
针对同一问题的一个有趣的建议解决方案是invent dynamic partial classes。
因此,在ASP.Net MVC中使用强类型视图是复合模型的一种不好的方法,以及使用粗略的ViewDictionary方法的更好,更简单,更高效的方法?
完全同意,如果你有一个需要定义值的视图,那么给它自己的模型类。然后,当您在其他地方重新使用视图时,您知道要传递给它的内容:-) – WestDiscGolf 2010-08-16 21:52:55