asp.net-mvc – 为什么要使用视图模型?
|
我是新开发使用ASP.NET MVC的Web应用程序。事实上,我是开发Web应用程序的新手,不管是什么技术。 目前,我正在开发一个项目,只是为了更好地了解ASP.NET MVC框架。当在SO和互联网上的其他地方阅读时,共识似乎是,视图应该永远不直接处理业务对象(即实现业务逻辑和包含相关属性的对象)。相反,应该使用视图模型。然而,这引入了几个问题: >我在哪里放我的验证码? 事实上,它似乎相当麻烦,我没有真正地看到任何人解释正确为什么这是一个坏主意传递业务对象的意见。有人可以尝试解释这个(或指向一个很好的解释)? 只是澄清;我不是在寻找如何处理上面的视图模型的两个问题的示例,但只是一个解释为什么我应该使用视图模型。 解决方法
在视图模型上,您应该验证应用程序特定的一切,例如日期应该是en-US格式文化。
这就是为什么有工具,如AutoMapper。 当您在视图中直接使用域模型时,会出现不同的问题: >视图具有显示数据(本地化/全球化)的特定要求,因此您可以在视图中使用意大利代码,或者将此代码放在模型上,以使它们在其他应用程序中的可重用性降低,因为您已经使用特定演示文稿 [HttpPost]
public ActionResult CreateUser(BusinessObjectUser user) { ... }
假设您已通过不包括此属性从底层表单中隐藏此属性。>业务模型不会经常更改,而UI可能会更频繁地更改。如果您的客户要求您将屏幕拆分为两个?您呈现信息更改的方式和格式也改变。如果你直接在你的视图中使用你的模型,你的意见的可怕性变得越来越糟糕,每一个变化。>大约60%的问题我回答在ASP.NET-mvc标签中的StackOverflow不会被问过OP是否使用了视图模型。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- .net – SignalR长轮询在5秒内断开连接
- 如何发现ASP.NET应用程序重启的原因
- 为什么NuPack生成的NinjectMVC3.cs无法编译? (或者ASP.NET
- asp.net-mvc-2 – 在调用EditorFor(…)时隐藏公共属性的编辑
- asp.net-mvc-3 – 在Razor中加入文本变量
- ASP.NET Ajax库死了吗?
- 从ASP.NET MVC2向iPhone提供视频文件
- asp.net – 禁用ASPNET标识2.0中的用户
- asp.net-mvc – 如何解决异常“文件不存在”?
- asp.net – NavigateUrl =“#”变成href =“SubFolder /#”
- asp.net – 有没有办法以编程方式设置Elmah中的应
- asp.net-mvc – Azure ACS 2自定义域
- asp.net-mvc – ASP.Net MVC中的实时视频聊天录制
- asp.net-mvc – 链接到iPad上的Google Document
- IIS和ASP.Net Web开发服务器之间的行为差异?
- asp.net-mvc – ASP.NET MVC – AntiForgeryToke
- asp.net-mvc-3 – AZURE ACS – Windows Live ID
- asp.net – 如何从我的网站项目中删除未使用的CS
- asp.net – 禁止从网页复制数据
- asp.net – 没有回发的日历控件
