模型和视图模型之间的差异

ama*_*eur 11 asp.net-mvc model viewmodel asp.net-mvc-3

我一直在研究一个新项目的asp.net MVC项目结构,并且有一些问题令我感到困惑.模型和视图模型之间有什么区别?我是否正确地说视图模型包含表单属性中的模型?

VJA*_*JAI 30

我有一个博客,我想在一个视图中显示最新帖子,最新评论,帖子类别列表.我怎么能这样做?我可以强烈地输入我对任何一个模型的看法吧?有视图模型.

我创建了一个名为的视图模型BlogViewModel,包含最新的帖子,最新的评论和其他东西作为属性,我用这个模型绑定我的视图.的posts,comments..是域模型,而BlogViewModel视图模型我专门创建的视图.

明天我将以移动版本显示我的博客,那时我可能会创建一个只包含较少属性的简单视图模型.最后..视图模型用于视图,大多数时候它们充当真实域模型的包装器!


Eri*_*ndi 23

模型通常与数据的存储方式(数据库,服务等)密切相关,模型将与模型非常相似.

另一方面,ViewModel与您的数据呈现给用户的方式密切相关.它通常是模型的扁平版本,非规范化等.它可以是多个模型的聚合.

对于典型Person对象,模型可能包含以下属性:

  • 名字
  • 生日

但是,在您的ViewModel中,您可以选择以不同的方式表示它并具有更多类似的内容:

  • 全名
  • 年龄

  • 在我看来,建模是最重要的开发活动中最被忽视的(嗯,至少在我知道的大多数地方......) (2认同)

gdo*_*ica 6

ViewModel 是从业务领域层调整到特定视图的模型版本。

它只有与视图相关的属性,不应该有方法(除了简单的像ToString())。

ViewModel 只是一个“数据容器”。