asp.net-mvc – ASP.NET MVC模型验证错误本地化上下文
首先,我必须说我理解基于数据注释的模型验证如何在ASP.NET MVC4中工作,并且我已成功使用DataAnnotationsModelValidatorProvider实现它.所以我在设置它时不需要帮助.
但是当它归结为HtmlHelpers时,我正在努力尝试计算错误消息的上下文.通过说上下文,我的意思是我们正在谈论的错误.哪个属性返回错误? 我能得到的是错误的关键和当前的ErrorMessage,但是在程序上,没有什么,至少我知道,这会传达我们正在谈论的错误.无论是必需属性还是其他属性,我都无法找到如何区分它们. 让我们稍微打开一下场景吧.我有自定义HtmlHelpers来呈现ContentEditable元素.例如Html.ContentEditableValidationMessageFor(m => m.firstName);.它将输出如下内容: <span contenteditable="true" data-valmsg-for="firstName" data-valmsg-replace="Please provide first name" class="field-validation-error">Please provide first name</span> 现在,我确实有一个jQuery插件来处理和保持contenteditable元素中的更改,它会将它们持久化到后端.但是,UI没有什么可以说我们正在谈论的错误消息.人类可以很容易地看到它是RequiredAttribute,但是以编程方式没有数据可以将它与某些MinLengthAttribute区分开来. 在这种情况下,如果我只是使用data-valmsg-for =“firstName”作为本地化的密钥,那么对于相同属性的所有错误都会返回相同的错误消息. 四舍五入 当ModelState可用时,为ModelError发出唯一ID的最佳实践是什么?考虑到我使用的是ASP.NET MVC4和DataAnnotationsModelValidatorProvider. 我可以想到很多方法来“将它一起”,但我想使用ModelState和MVC提供的任何东西.如果这一切都归结为编写一个自定义的ModelValidatorProvider,那么我全都开放了.只要它是最好和最可持续的方式.我现在所做的就是为了做更多的事情,而不是现在做更多的事情,而不是现在就把它劈开并永远黑客行动以保持工作 解决方法
你能否提出一些关于需要知道哪个规则触发验证错误的背景,是否可以尝试做一些你不应该做的事情?
通常,我使用FluentValidation(http://fluentvalidation.codeplex.com/wikipage?title=mvc)代替Data Annotation验证有很多原因,去杂乱模型,单元测试验证逻辑,允许包含业务逻辑的更复杂的验证.如果您可以免费使用第三方库,我会先看看它,因为它总能解决我过去遇到的任何验证问题. 它允许您编写c#代码,通过流畅的API处理模型验证.它有一个MVC扩展,可以为您提供所有内容,因此除了创建模型验证类之外,从那时起几乎没有什么影响.上面代码片段的示例是…… RuleFor(modelname => modelname.FirstName).NotEmpty().WithMessage("lease provide first name"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何使用ASP.NET和iframe对跨域的用户进行身份验证?
- 如何在页面视图或按钮单击之间增加ASP.NET(C#)中的变量
- asp.net – 替代SSRS前端
- asp.net – 空白WebResource.axd
- asp.net core系列 63 领域模型架构 eShopOnWeb项目分析 上
- asp.net – WCF与WebAPI和本机移动设备
- asp-classic – 使用经典ASP区分测试和生产的最佳方式
- 在ASP.NET MVC4 Web应用程序上,w3wp的CPU使用率上升到100%
- asp.net – VS2010中每个发布配置文件的不同连接字符串
- asp.net-mvc-3 – 如何重定向已登录的用户,该用户正在尝试访
- asp.net-mvc-3 – 使用存储过程(MSSQL)时Dapper的
- ASP.Net OData在LB中通过SSL终止失败
- asp.net – WCF服务问题 – 不支持协议“http”.
- ASP.NET潜在危险请求Javascript正则表达式
- Pro ASP.NET Core MVC 2翻译计划:第一章
- asp.net-mvc-3 – 造型ASP.NET MVC验证错误?
- asp.net-mvc – MVC动作过滤器集合已修改;枚举操
- Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ex
- ASP.NET中内联标记的全球化差异
- asp.net – 如何直接在aspx布局页面中嵌入ShareP