MVC3中使用验证适配器修改默认的验证提示信息
2011-05-29 14:36 无常 阅读(5795) 评论(11) 编辑 收藏 举报验证
MVC中提供的模块验证非常灵活,在System.ComponentModel.DataAnnotations命名空间中提供了常用的一些验证特性,如Required、Compare等。 所有的验证特性都提供有ErrorMessage属性给我们设置自定义的出错提示信息,比如我们可以这样指定必填属性的提示:[Required(ErrorMessage ="请输入用户名")]。 还可以通过设置ErrorMessageResourceType和 ErrorMessageResourceName属性来使用系统资源文件实现多语言支持(参考:http://haacked.com/archive/2009/12/12/localizing-aspnetmvc-validation.aspx)。
问题
项目中遇到问题,程序员为了省事验证属性都最简化,比如必填字段只指定了[Required]特性,这样就导致了验证错误提示信息不太直观,比如会这样:
客户比较挑剔,特别指定要消除鸡肠文。按照上文提到的方法,可以给Required.Errormessage指定详细的验证信息,但项目中的实体类较多,一一去修改的话工作量比较大。
于是寻找捷径…
验证适配器
DataAnnotationsModelValidatorProvider提供有RegisterAdapter和RegisterAdapterFactory二个方法供我们注册自己的验证适配器或适配器工厂类。首先创建一个自己的适配器MyRequiredAttributeAdapter:
从MVC内置的System.Web.Mvc.RequiredAttributeAdapter适配器类继承(RequiredAttributeAdapter的基类y就是DataAnnotationsModelValidator<RequiredAttribute>),覆盖GetClientValidationRules方法,在这里使用自定义的提示文字创建验证规则类。
然后在程序启动时注册此适配器:
编译后再打开页面,提示信息已经全部改变了。
省去了一个一个修改的麻烦。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2008-05-29 win2003配置Routing and Remote Access出现“试图连接到数据库存储时出错”及解决方法