博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net mvc3 数据验证(二)——错误信息的自定义及其本地化
阅读量:6934 次
发布时间:2019-06-27

本文共 1537 字,大约阅读时间需要 5 分钟。

原文:

  
一、自定义错误信息
        在上一篇文章中所做的验证,在界面上提示的信息都是系统自带的,有些读起来比较生硬。比如:

        如果你的环境是英文的,那么你的提示信息就是中英文夹杂的了。
 
        在这种情况下就需要用到自定义错误信息了。其实很简单,就是在model的验证特性中加上[ErrorMessage]。比如:
Model:
[Required(ErrorMessage = "用户名不能为空!")]        [Display(Name = "用户名")]        [Remote("CheckUserName","Account")]        public string UserName { get; set; }

 

验证结果:

        ErrorMessage允许开发者使用{0}占位符来显示字段的显示名(即
[Display(Name = "用户名")]),如果没有Display特性,那么会显示属性名。如:
Model:
[Required(ErrorMessage = "{0}不能为空!")]        [Display(Name = "用户名")]        [Remote("CheckUserName","Account")]        public string UserName { get; set; }

 

验证结果:

若为:
[Required(ErrorMessage = "{0}不能为空!")]        //[Display(Name = "用户名")]        [Remote("CheckUserName","Account")]        public string UserName { get; set; }

 

则验证结果为:

        如果验证的特性中还有其他参数,那么ErrorMessage可以用占位符直接显示其他参数,如
Model:
[Required]        [StringLength(100, ErrorMessage = "请输入{2}到{1}位的{0}。", MinimumLength = 6)]        [DataType(DataType.Password)]        [Display(Name = "密码")]        public string Password { get; set; }

 

验证结果:

 
 
二、错误信息的本地化
        如果你做的项目是要分发到不同的国家,那么就需要做本地化。而对于错误信息而言,也有这样的功能,方法如下:
        1、在项目中添加两个资源文件ErrorMessages.resx以及ErrorMessages.en-US.resx:

        2、在两个资源文件中都加入名称为UserNameRequire的资源,值分别为中英文下的提示信息:

        
        3、在web.config的
<system.web>节点加入
<globalization uiCulture="auto"/>,随着浏览器的设置来更换资源文件。
        4、在Model中也如如下代码:
[Required(ErrorMessageResourceType = typeof(ErrorMessages), ErrorMessageResourceName = "UserNameRequire")]        [Display(Name = "用户名")]        public string UserName { get; set; }

 

        5、运行结果:
中文环境下:

英文环境下:

 
        好了,mvc3中错误信息的自定义和本地化比较简单,暂时总结这么多,下一篇就要讲自定义数据验证了。
 

转载地址:http://wngjl.baihongyu.com/

你可能感兴趣的文章
Waiting on Groups of Queued Tasks
查看>>
selenium 定制启动 chrome 的选项
查看>>
PHP MySQL Update
查看>>
强大的Vivado IP工具——自定义IP的使用
查看>>
PowerShell让系统可以执行.ps1文件
查看>>
python 在windows 中文显示
查看>>
路由器后面再接一个路由器怎么设置(二级路由)
查看>>
python 调用shell命令的方法
查看>>
.Net转Java.02.数据类型
查看>>
在一个gradle 的maven property 里添加多个URL
查看>>
PHP中的SESSION
查看>>
C#正则表达式的完全匹配、部分匹配及忽略大小写的问题
查看>>
【游戏开发】基于VS2017的OpenGL开发环境搭建
查看>>
洛谷P3960 列队(动态开节点线段树)
查看>>
RESTful到底是什么玩意??
查看>>
PHP的词法解析器:re2c
查看>>
Html5版本的全套股票行情图开源了,附带实现技术简介
查看>>
Our Proof : Page Scraping : Website Data Extraction : Data Mining Analytics : Connotate.com
查看>>
linux 时间戳及时间差计算
查看>>
[Dynamic Language] Python 静态方法、类方法、属性
查看>>