.net – 如何保持验证DRY?
使用这种方法查看MVC中的模型: http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/06/29/how-we-do-mvc-view-models.aspx 在我脑海里留下一个没有回答的问题.所以这是关于我清理的时间. 如果我使用自动映射器将域属性映射到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 – 在web.config中编码url
- ASP.NET Core 实现带认证功能的Web代理服务器
- 最佳实践ASP.NET成员资格:同一数据存储区中的用户表?
- asp.net-mvc – 像Stack Overflow这样的网站如何在ASP.NET
- asp.net mvc和css:选择时突出显示菜单选项卡
- asp.net-core – Asp.Net核心(Full .Net框架)与Asp.Net核心
- asp.net-core – TagHelper,用于将路由值作为链接的一部分传
- asp.net-mvc – MVC表单LoginUrl不正确
- asp.net-core – .NET Core 2中缺少TaskCache类
- [你必须知道的.NET] 第四回:后来居上:class和struct
- asp.net-mvc – 没有值的asp.net mvc htmlattrib
- .net – 在IIS中部署.PDB文件 任何好处?
- asp.net – 与另一个jQuery版本同时使用Kendo UI
- ASP.NET MVC 4全局授权过滤器强制在AllowAnonymo
- asp.net-mvc – 如何将NUnit作为ASP.NET MVC的测
- asp.net-core – 如何为ASP.NET Core注册和使用M
- 身份验证 – 我们可以在Asp.NET Core中销毁/无效
- asp.net-mvc-3 – 在MVC3中设置所选选项
- asp.net-mvc – 添加分页MVC和Azure表存储
- asp.net-mvc-3 – 需要帮助区分WebMatrix,ASP.NE