我是ASP.NET MVC的新手.我在理解ViewModel的目的时遇到了问题.
什么是ViewModel,为什么我们需要一个用于ASP.NET MVC应用程序的ViewModel?
如果我能有一个简单的例子,那就更好了.
我经常看到人们说某些软件"非常自以为是",或者微软倾向于编写"无意见"的框架.这究竟意味着什么?
是否有一个全面的列表解释了MVC4的所有新功能以及MVC3的所有变化?
(发行说明没有太大帮助)
我知道将域模型用作视图模型可能会很糟糕.如果我的域模型有一个名为IsAdmin的属性并且我有一个Create控制器操作来创建用户,那么即使我没有在我的视图中公开这样的文本字段,也有人可以改变我的表单并使其发布一个IsAdmin = true表单值. .如果我正在使用模型绑定,那么当我提交我的域模型时,该人现在将成为管理员.因此,解决方案只是在视图模型中公开我需要的属性,并使用AutoMapper之类的工具将我返回的视图模型对象的属性值映射到我的域模型对象的属性值.但是我读到类上的bind属性可以用来指示Model Binder它应该和不应该绑定哪些属性.那么究竟是什么原因使得两个独立的类(领域模型和视图模型)必须代表相同的东西,然后在映射它们时增加开销呢?这是一个代码组织问题,如果是这样,我如何受益?
编辑
我遇到的与域模型分离的视图模型的最重要原因之一是需要实现MVVM模式(基于Martin Fowler的PM模式)来管理复杂的UI.
asp.net-mvc ×3
viewmodel ×2
architecture ×1
asp.net ×1
model ×1
modelbinders ×1
terminology ×1