.net – MVC,ViewModels和Validation
发布时间:2020-12-16 06:36:53 所属栏目:asp.Net 来源:网络整理
导读:我正在使用POCO创建一个带有EF4的MVC3应用程序.我已经为我的EF实体添加了验证属性.现在,当我构建视图时,我想使用视图模型(也许使用 AutoMapper来填充它们). 我遇到的问题是我必须在我的视图模型上重新定义我的验证属性,这违反了DRY主体.例如,如果我决定更改
我正在使用POCO创建一个带有EF4的MVC3应用程序.我已经为我的EF实体添加了验证属性.现在,当我构建视图时,我想使用视图模型(也许使用
AutoMapper来填充它们).
我遇到的问题是我必须在我的视图模型上重新定义我的验证属性,这违反了DRY主体.例如,如果我决定更改字段的大小,我必须更改POCO和使用它的任何视图模型的MaxLength属性. 是否有一些棘手的方法可以将验证规则从我的POCO映射到我的视图模型? 解决方法
我也很挣扎,我同意它违反DRY.我最近发布了一个关于这个
Here的问题并得到了相当多的阻力.
在任何现实世界的应用程序中,您都无法获得完美的DRY.有时你会因违反原则而不是盲目地坚持下去而获得更多好处. 编辑: 人们也可能认为DRY可能违反单一责任原则(SRP).通过重用类似的代码,您现在正在使代码执行多个操作.如果您认为数据模型和视图模型具有不同的目的,从而具有不同的职责……将它们组合到单个模型中会违反SRP.也就是说,通过使您的数据模型也成为一个视图模型,这是两个不同的职责. 现在,人们可以想到在这方面可以尝试和协调SRP与DRY的多种方法,但在某些时候你必须权衡成本的好处. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 清除ASP.NET临时程序集而不重新启动IIS
- asp.net – 将MemoryStream文件存储到Azure Blob
- asp.net-mvc – 需要为ASP.NET mvc部署哪些文件?
- ASP.Net MVC Cookies不会持续存在
- asp.net – 如何在asp net core api中使用Created(或Create
- asp.net – 为什么在VS2008 / Casini中开始调试时Applicati
- asp.net-mvc – 将azure MVC应用程序置于维护模式的巧妙方法
- asp.net-mvc-3 – 将模型数据从Knockout发送回MVC 3
- asp.net-mvc – 其中Simple Injector等效于StructureMap的O
- asp.net – ClaimsAuthenticationManager与IAuthentication
推荐文章
站长推荐
- asp.net – Intranet / Internet的Windows身份验
- asp.net-mvc – asp.net mvc中HttpUnauthorizedR
- ASP.NET MVC 使用Bootstrap的方法
- asp.net – Context中不存在DeleteObject
- asp.net – 使用Repeater控件构建动态链接
- asp.net – User.Identity.Name是否为空?
- 通过asp.net网页进行Web服务器监控
- asp.net-mvc – 支持URL中任何位置的catch-all参
- asp.net – 使用Visual Studio 2012发布到azure时
- asp.net-mvc – ASP.NET MVC 2,Ninject 2.2并没有
热点阅读