我有一个与 MVC3 相关的设计/最佳实践问题。我有一个网站的“首页”,其中可能包含我的模型中不相关表格的一些摘要信息。
创建专用于每个模型的部分 View 更好,还是创建一个 ViewModel 将所有内容绑定(bind)在一起更好?
部分 View 的“优点”是它真正分离了关注点,“缺点”是部分 View 可能不会在网站的其他地方重用。
ViewModel 的“优点”是它允许将单个强类型对象应用于 View ,“缺点”是数据实际上不相关并且绑定(bind)是人工的。
最佳答案
为了清晰和可维护性,我选择这个
public class SummaryModel
{
public Patial1Model Partial1 {get;set;}
public Patial2Model Partial2 {get;set;}
//etc
}
主要好处不是可重用性(但谁知道呢?),而是可维护性。使用此模型可以非常轻松地修改部分数据或在其他地方重用它。
summary information for non-related tables from my Model.
在 View 中,ViewModel 就是模型,实际上应用程序不应该关心表和其他持久性细节。应用程序的模型主要是领域模型,EF或NH的pocos是持久化模型。 View 了解其模型,该模型不同于应用程序或持久性模型。
关于asp.net-mvc-3 - 摘要/首页上的 ViewModel 与部分 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9891272/