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

4
除了所在目录之外,每个模型或视图模型应满足哪些要求才能被归类为模型或视图模型?谢谢大家,Dave。
2个回答

5
尽管Oded在ViewModel不属于MVC方面是正确的,但许多人仍然使用该术语来描述本质上是用于呈现目的的一个或多个翻译数据类的模型。
在典型的实现中,MVC Web项目可能无法直接访问DTO类,它反过来调用核心层中的方法,调用数据库,检索DTO对象并将它们翻译成“视图模型”。
我想这有助于新手(称其数据类为模型)区分基于DTO类的纯粹用于呈现目的的类和DTO类。

1
我的看法与你类似,ViewModels可以用作Model对象的容器,这些对象可能是来自其他层的DTO。在我看来,ViewModel没有意义,除非它是用于特定视图的根模型,而其组成的模型对象可能在许多视图和控制器中具有意义。 - Nick Ryan

3

ViewModel 不是 MVC 模式的一部分。

它是 MVVM 的一部分。

在这两种模式中,MV 都代表业务/领域模型,而 View 则代表 UI。

MVC 还有一个 Controller,它是视图和模型之间的协调者。就 Microsoft MVC 框架的默认设置而言,控制器、视图和模型都放在相应名称的目录中。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接