【问题标题】:ViewModel vs. Partial Views on Summary/Front Page摘要/首页上的 ViewModel 与部分视图
【发布时间】:2012-03-27 14:12:23
【问题描述】:

我有一个与 MVC3 相关的设计/最佳实践问题。我有一个网站的“首页”,其中可能包含一些来自我的模型的非相关表的摘要信息。

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

部分视图的“优点”在于它真正分离了关注点,而“缺点”是部分视图可能不会在网站的其他地方重复使用。

ViewModels 的“优点”是它允许将单个强类型对象应用于视图,“缺点”是数据实际上是不相关的并且绑定是人工的。

【问题讨论】:

  • +1* 我今天早些时候谈到了这个!
  • 您可以使用 Html.Partial(viewName, Model) 将模型传递给 PartialView。您可以使用 PageData["key"] 在视图之间传递数据。如果您想使用 JavaScript 将 html 加载到容器中,则将您的网站拆分为部分视图会更有用。它也更结构化,更易于阅读。

标签: asp.net-mvc-3 viewmodel partial-views


【解决方案1】:

为了清晰和可维护性,我会选择这个

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

主要的好处不是可重用性(但谁知道呢?),而是可维护性。使用此模型很容易修改部分数据或在其他地方重用它。

我的模型中不相关表的摘要信息。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    相关资源
    最近更新 更多