2013-01-21 130 views

回答

3

一个ViewModel不是MVC模式的一部分,开始。

它是MVVM的一部分。

MV在模式均值模型(如在业务/域模型中)和查看UI。

MVC还有一个控制器,它是视图和模型之间的协调器。就默认的Microsoft MVC框架而言,控制器,视图和模型都会进入匹配名称的目录。

MVVM具有ViewModel,它是视图本身的一个模型。由于这不是MVC模式的一部分,因此Microsoft在MVC模板中默认没有这些地方,但如果您希望引入此抽象,则应为它们创建一个ViewModels目录。

5

尽管Oded在ViewModel中不是MVC的一部分是正确的,但许多人仍然使用该术语来描述一种模型,该模型基本上是用于演示目的的一种或多种翻译数据类的组合。

在典型的实现中,MVC Web项目可能无法直接访问DTO类,它依次调用核心层中调用数据库的方法,检索DTO对象并将它们转换为“查看模型”。

我认为它可以帮助新手(将他们的数据类称为模型)区分DTO类和基于DTO类纯粹用于演示目的而构建的类。

+1

+1我对ViewModels的看法与您的相似。 ViewModels可以用作Model对象的容器,它可以是来自其他层的DTO。在我看来,ViewModel在视图的上下文之外没有任何意义,它将成为根模型,而构成模型的对象在许多视图和crontrollers中可能都有意义。 –

相关问题