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是否使用了视图模型。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 需要有关创建新ASP.NET应用程序的建议
- asp.net-mvc – 如何从Action属性返回一个Json对象?
- asp.net-mvc-4 – 在主机上找不到Clearscript文件
- asp.net core 2.0 webapi集成signalr(实例讲解)
- asp.net-mvc – ASP.NET MVC中的所有内置ActionResults
- asp.net – WebAPI错误404.0 – 未找到
- asp.net-mvc-3 – MVC直接在单个对象上调用模型绑定器
- asp.net-mvc – 为什么我需要在asp.net mvc中部分视图的下划
- 如何在ASP.NET vNext中使用nuget包?
- 谈谈Nullable<T>的类型转换问题
- bin文件中的任何文件是否有任何更改会导致ASP.NE
- ASP.NET MVC默认URL视图
- asp.net-mvc-3 – ASP.Net MVC 3 Razor Concaten
- asp.net – 如何在IIS 7.5上调试经典的asp页面Vi
- IIS7集成vs经典流水线 – 哪些使用更多的ASP.NET
- asp.net – IIS Web.Config 301重定向查询字符串
- asp.net – MasterPage.Master>下次将哪个页面作
- asp.net-core – 如何忽略MVC6中的路由
- asp.net-mvc – View()vs. PartialView()
- asp.net – 防止用户在同一行上工作