我知道使用域模型作为视图模型可能不好。如果我的域模型具有一个名为IsAdmin的属性,并且我有创建控制器操作来创建用户,则某人可以更改我的表单并将其发送到POST一个IsAdmin = true表单值,即使我没有在我的视图中公开这样的文本字段。如果我使用模型绑定,那么当我提交我的域模型时,该人现在将成为管理员。因此,该解决方案只会暴露视图模型中需要的属性,并使用像AutoMapper这样的工具将我的返回视图模型对象的属性值映射到我的域模型对象的属性值。但是我读过一个类的绑定属性可以用来指示模型绑定器应该绑定哪些属性。那么究竟是什么原因让两个不同的类(域模型和视图模型)基本代表相同的事情,然后在映射它们时会产生开销?这是更多的代码组织问题,如果是的话,我如何从中受益?为什么两个类,查看模型和域模型?
编辑
一个我遇到的视图模型这是从域模型独立的最重要原因是实现MVVM模式(基于Martin Fowler的PM模式),用于管理需要复杂的用户界面。
看看这个问题也太http://stackoverflow.com/questions/3094633/bestpractice-mixing-view-model-with-domain-model – 2011-02-01 17:40:36