asp.net mvc3 数据验证(二)——错误信息的自定义及其本地化

简介: 原文:asp.net mvc3 数据验证(二)——错误信息的自定义及其本地化   一、自定义错误信息         在上一篇文章中所做的验证,在界面上提示的信息都是系统自带的,有些读起来比较生硬。
原文: asp.net mvc3 数据验证(二)——错误信息的自定义及其本地化

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

        如果你的环境是英文的,那么你的提示信息就是中英文夹杂的了。
 
        在这种情况下就需要用到自定义错误信息了。其实很简单,就是在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中错误信息的自定义和本地化比较简单,暂时总结这么多,下一篇就要讲自定义数据验证了。
 
目录
相关文章
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
38 0
|
30天前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
28 0
|
30天前
mvc.net分页查询案例——mvc-paper.css
mvc.net分页查询案例——mvc-paper.css
5 0
|
1月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
95 5
|
3月前
|
XML 前端开发 定位技术
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
25 0
|
3月前
|
前端开发
.net core mvc获取IP地址和IP所在地(其实是百度的)
.net core mvc获取IP地址和IP所在地(其实是百度的)
123 0
|
5月前
|
开发框架 自然语言处理 前端开发
基于ASP.NET MVC开发的、开源的个人博客系统
基于ASP.NET MVC开发的、开源的个人博客系统
51 0
|
8月前
|
SQL 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(完:内附源码)
经过一段时间的准备,【ASP.NET Core MVC开发实战之商城系统】已经完成,目前代码已开发完成,先将全部内容整理分享,如有不足之处,还请指正。
106 0
|
8月前
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
114 0
|
9月前
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
67 0