MVC3中使用验证适配器修改默认的验证提示信息
2011-05-29 14:36
531 查看
验证
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方法,在这里使用自定义的提示文字创建验证规则类。
然后在程序启动时注册此适配器:
编译后再打开页面,提示信息已经全部改变了。
省去了一个一个修改的麻烦。
相关文章推荐
- 更改MVC3默认错误提示信息 模型验证 validation
- MVC3中实现验证提示信息多语言支持
- 使用EF保存数据时 提示: 其他信息: 对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性。
- 修改jQuery.validate验证方法和提示信息
- HTML5中修改表单验证默认提示语句
- 修改jQuery.validate验证方法和提示信息
- jQuery Validate 表单验证插件----通过name属性来关联字段来验证,改变默认的提示信息,将校验规则写到 js 代码中
- 使用自定义列显示班级学生信息,要求能够进 行删除和修改,删除时给出提示:如 “ 确信要删 除 - 张三 - 吗? ” ,其中张三为当前行的姓名
- Struts2表单验证中使用OGNL提示错误信息
- EditText实现(修改密码提示验证信息需求)
- 使用Struts框架验证时,校验提示信息不显示前面的点
- GridView使用技巧之:新增记录、GridView内数据验证、删除信息提示
- GridView使用技巧之:新增记录、GridView内数据验证、删除信息提示等
- thinkphp怎么修改默认提示信息
- 修改jQuery.validate验证方法和提示信息
- 更改validate默认的验证不通过提示信息位置
- 使用HashSet和TreeSet存储多个商品信息,遍历并输出;其中商品属性:编号,名称,单价,出版社;要求向其中添加多个相同的商品,验证集合中元素的唯一性。 提示:向HashSet中添加自定义
- GridView使用技巧之:新增记录、GridView内数据验证、删除信息提示等
- HTML5中修改表单验证默认提示语句
- 用js验证输入信息,不使用alert,而使提示错误的信息直接出现在输入框后?在同一行上