Dav*_*all 27 asp.net-mvc viewmodel
我是使用ASP.NET MVC开发Web应用程序的新手.事实上,无论技术如何,我都很擅长开发网络应用程序.
目前,我正在开展一个项目,以便更好地了解ASP.NET MVC框架.当阅读SO和互联网上的其他地方时,共识似乎是视图永远不应直接处理业务对象(即实现业务逻辑和包含相关属性的对象).相反,应该使用视图模型.但是,这引入了一些问题:
事实上,它似乎相当麻烦,我没有真正看到任何人正确解释为什么将业务对象传递给视图是一个坏主意.有人可以尝试解释一下(或指向一个很好的解释)?
只是一个澄清 ; 我不是在寻找如何处理上述视图模型的两个问题的示例,而只是解释为什么我应该使用视图模型.
Dar*_*rov 45
我在哪里放置验证码?
在视图模型上,您应该验证特定于应用程序的所有内容,例如日期应该是en-US格式文化,....
我需要添加代码来映射业务对象和视图模型.
这就是为什么有像AutoMapper这样的工具.
在视图中直接使用域模型时会出现不同的问题:
模型可能包含诸如此类的属性IsAdmin,然后我将您的想象力留给具有以下签名的控制器操作:
[HttpPost]
public ActionResult CreateUser(BusinessObjectUser user) { ... }
Run Code Online (Sandbox Code Playgroud)
假设您通过不包含它来从基础表单隐藏此属性.
您应该使用View Models的三个原因:
原因1:从视图中删除逻辑
原因二:安全
原因三:耦合松动
以下链接可能很有用:http: //www.codeproject.com/Articles/223547/Three-reasons-to-why-you-should-use-view-models
| 归档时间: |
|
| 查看次数: |
9642 次 |
| 最近记录: |