asp.net-mvc-3 - 摘要/首页上的 ViewModel 与部分 View

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

我有一个与 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/

相关文章:

asp.net-mvc-3 - 何时使用 ViewModel 何时不在 Asp.net MVC 中

javascript - 我如何在 Ember 中创建部分?

Javascript MVC 在空格后删除

asp.net-mvc-3 - 由于 session 而导致单元测试失败

c# - 右对齐 HTML.TextBoxFor 中的文本

具有多选功能的 asp.net mvc 强类型 View 模型

javascript - 将 JavaScript 放在分部 View 中是否可以

c# - 我怎么知道是否存在不需要的 RenderSection?

asp.net-mvc - 用于 MVC 不显眼的远程验证的事件 Hook

wpf - 如何为绑定(bind)到 viewmodel 属性的 WPF 控件设置动画?