2012-03-27 59 views
2

我有一个关于MVC3的设计/最佳实践问题。我有一个网站的“首页”,可能包含我的模型中非相关表格的一些摘要信息。ViewModel与部分视图总结/首页

创建专用于每个模型的部分视图还是创建ViewModel以将所有内容绑定在一起更好?

部分视图的“专业”是它真正将问题分开,“con”是部分视图可能不会在网站的其他位置重复使用。

ViewModels的“专业版”是它允许将一个强类型对象应用于视图,其中“con”表示数据实际上是不相关的,绑定是人造的。

+0

+ 1 *今天早些时候我正在谈论这个! – Curt 2012-03-27 14:15:15

+0

您可以使用Html.Partial(viewName,Model)将模型传递给PartialView。您可以将数据从视图传递到PageData [“key”]来查看。如果您想使用JavaScript将HTML加载到容器中,将网站分割为部分视图更为有用。它也更加结构化,更易于阅读。 – Silvermind 2012-03-27 14:19:05

回答

2

为了清晰性和可维护性我就选择这种

public class SummaryModel 
{ 
    public Patial1Model Partial1 {get;set;} 
    public Patial2Model Partial2 {get;set;} 
    //etc 
} 

主要优点是不重用(谁知道?),但maintanability。使用这个模型非常容易修改部分数据或在其他地方重新使用它。

我的模型中非关联表的摘要信息。

在视图中,ViewModel是模型,实际上应用程序不应该关心表和其他持久性细节。应用程序的模型主要是领域模型,EF或NH的pocos是持久性模型。这些视图了解他们的模型,这与应用程序或持久性模型不同。

+0

所以,对ViewModel投一票 – 2012-03-27 15:11:51