.net – 如何保持验证DRY?
|
在我脑海里留下一个没有回答的问题.所以这是关于我清理的时间. 如果我使用自动映射器将域属性映射到dto,那么我明白当dto被映射到保存的域实体时,我的域层可以返回一组验证规则. 但是,我没有看到DRY的方式让客户端验证工作,并将错误添加到模型状态,以便它们对应于视图模型上的正确属性. 干杯 解决方法我发现了一个相关的问题,有一些有趣的回答:Mapping Validation Attributes From Domain Entity to DTO 我一直在想这个,在某种程度上,它类似于我们在服务器端和客户端验证的情况. (例如使用NHibernate Validator和jQuery.validate). 这些天,我们非常接受您应该有一整套服务器端验证,并且添加客户端验证是您可以选择的选项,以使您的应用程序更加用户友好.以前,您必须手动实施客户端验证,但是由于可用性的好处,您接受了重复的工作. 我认为我们在这里处理的是非常相似的.您应该在域层中进行验证.您不能依赖消费应用程序来始终自己添加验证. 然后,您的应用程序中可以选择在DTO /视图模型上添加验证.你这样做是因为它更有助于处理视图中的验证错误,而不是让他们进入到可能引发异常或给出不太有用的错误消息的域.关键是从领域来看,你不依赖于这一点.您仍然对系统充满信心,因为您知道是否有任何错误的数据可以通过,您的模型会捕获它. 客户端/服务器的情况是这些天的一个非问题,因为已经做了很多工作来自动化,从服务器端代码生成客户端代码(例如ASP.Net MVC中的ModelValidatorProvider).我相信随着越来越多的人使用视图模式/ DTO,我们将开始看到类似的解决方案,将域验证映射到DTO(it’s already happening with AutoMapper). 所以简而言之,我的(务实而不是理想的))答案是: 接受DRY的违规现在,在两个地方进行验证,并尝试为将来实现自动化的项目做出贡献 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在ASP.NET MVC中创建报表的最佳方式
- asp.net-mvc – 使用RedirectToAction单元测试ASP.NET MVC
- asp.net – 停止从域(也称为“无Cookie域”)设置Cookie以增
- asp.net-mvc – MVC4 Action返回没有null的JsonResult
- asp.net – 什么是Container.DataItem?
- asp.net-mvc – 变化:*错误地添加到http标头响应(asp.net
- asp.net – CalendarExtender定位问题
- asp.net-mvc – Visual Studio总是能够在源代码视图而不是设
- 什么是ASP.NET应用程序部署的最佳实践
- asp.net-mvc – HTML.Hidden For value set
- .net – 使用实体框架作为数据访问层
- asp.net-mvc-3 – MvcContrib网格和复选框
- asp.net – 禁用aspnet.friendlyurl的平板电脑移
- asp.net-core – 在执行DI时指定服务选项的干净方
- asp.net-mvc – Linq选择语句 – 不在的地方
- asp.net-mvc – DotNetOpenAuth:消息签名不正确
- asp.net-mvc – ASP.NET MVC与XSL
- asp-classic – 如何在经典的asp中读取文本文件
- asp.net – 请求格式无法识别的URL意外结束在’/
- asp.net-mvc-4 – 使用基本HTTP身份验证的MVC4 a
