ASP.NET MVC中ViewModel和Model之间的主要区别是什么?

时间:2013-01-21 12:44:31

标签: asp.net asp.net-mvc asp.net-mvc-3 razor asp.net-mvc-4

每个要满足哪些要求才能被归类为模型或ViewModel? (除了他们居住的目录)

全心全意,

戴夫

2 个答案:

答案 0 :(得分:5)

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

在典型的实现中,MVC Web项目可能无法直接访问DTO类,它又调用Core层中的方法来调用数据库,检索DTO对象并将它们转换为& #34;查看模型"。

我认为它有助于新手(他们将数据类称为模型)区分DTO类和纯粹基于DTO类构建的类。

答案 1 :(得分:3)

首先,ViewModel不是MVC模式的一部分。

它是MVVM的一部分。

两种模式中的MV都表示模型(如业务/域模型)和UI的视图。

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

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