Asp.net MVC验证哪些事(2)-- 验证规则总结以及使用
2014-01-04 22:42
501 查看
原文 Asp.net MVC验证哪些事(2)-- 验证规则总结以及使用
上篇文章Asp.net MVC验证那些事(1)-- 介绍和验证规则使用中,介绍了Asp.net MVC中的验证功能以及如何使用。这里将对MVC中内置的验证规则进行总结。
我们可以用ILSpy反编译工具,看看这个命名空间下都有些什么. 下面的图让我们一目了然,在这个命名空间下,.net为我们提供了那些验证规则。
不过,有三点需要注意:
1. 列出的类基本都是Attribute,如果不理解Attribute,可以看这里.Net Attribute详解(上)-Attribute本质以及一个简单示例
2. 正如Annotation的意识是“注释”, 这个命名空间下的类的本质是为数据类型添加注释和解释。验证规则也是一种注释,是对于数据规范要求的注释。
所以下面的所有类并不全是验证规则, 比如DisplayAttribute使用与显示,KeyAttribute常常用于定义主键, 以后有机会再和大家分享.
3. 之所以这些类不在System.Web命名空间下,是因为这些验证规则是不单单用于MVC项目中的,实际上它们可以用于任何地方,MVC验证只是其中一处。
1. RequiredAttribute
必填项检查,应用上该特性的字段,必须输入值。
2. CompareAttribute
CompareAttribute用于比较2个属性是否相同. 注册用户的时候,常常需要输入2次密码,其中一个是确认的密码,要求2个密码框中的密码必须相同,这个时候就可以应用CompareAttribute
3. RangeAttribute
用来限定数据范围,比如Age年龄字段,你可以限制数据必须在0~150之间。
4. StringLengthAttribute,MaxLengthAttribute和MinLengthAttribute
这3个都是用来对于字符串属性长度进行验证的。StringLength用来限定具体的长度,而后面的,一个是最大可输入长度,一个是最小的输入长度, 注意MaxLength和MinLength可以用于String和Array。
5. CreditCardAttribute验证
这个是用来验证信用卡的,支持多种类型信用卡的验证。
6. EmailAddressAttribute和UrlAttribute
这个非常简单,就是用来验证Email格式和Url格式的
7. FileExtensionsAttribute
用来检查文件名称后缀。假如你禁止上传.exe文件到服务器,这个时候,就可以通过它来做限制。
8. RegularExpressionAttribute
最后,如果上面的这些都无法符合你的要求,可以试试这个RegularExpressionAttribute. 它可以指定一个正则表达式作为验证规则。
上篇文章Asp.net MVC验证那些事(1)-- 介绍和验证规则使用中,介绍了Asp.net MVC中的验证功能以及如何使用。这里将对MVC中内置的验证规则进行总结。
一,查找所有验证规则
上篇文章中提到,所有的验证规则都是位于下面的命名空间下:using System.ComponentModel.DataAnnotations;
我们可以用ILSpy反编译工具,看看这个命名空间下都有些什么. 下面的图让我们一目了然,在这个命名空间下,.net为我们提供了那些验证规则。
不过,有三点需要注意:
1. 列出的类基本都是Attribute,如果不理解Attribute,可以看这里.Net Attribute详解(上)-Attribute本质以及一个简单示例
2. 正如Annotation的意识是“注释”, 这个命名空间下的类的本质是为数据类型添加注释和解释。验证规则也是一种注释,是对于数据规范要求的注释。
所以下面的所有类并不全是验证规则, 比如DisplayAttribute使用与显示,KeyAttribute常常用于定义主键, 以后有机会再和大家分享.
3. 之所以这些类不在System.Web命名空间下,是因为这些验证规则是不单单用于MVC项目中的,实际上它们可以用于任何地方,MVC验证只是其中一处。
二,使用验证Attribute的Model
本文中,涉及的验证规则,都应用到下面的Employee Model上, 对照下面的验证规则的解释,就能非常容易明白每项验证功能的作用了。public class Employee { public int EmpId { get; set; } [DisplayName("Employee Name")] [Required(ErrorMessage = "Employee Name is required")] [StringLength(100, MinimumLength = 3)] public String EmpName { get; set; } [DisplayName("Password")] [DataType(DataType.Password)] [Required] public string Password { get; set; } [CompareAttribute("Password")] [DataType(DataType.Password)] public string ConfirmPassword { get; set; } [Required(ErrorMessage = "Employee Address is required")] [StringLength(300)] public string Address { get; set; } [Required(ErrorMessage = "Salary is required")] [Range(3000, 10000000, ErrorMessage = "Salary must be between 3000 and 10000000")] public int Salary { get; set; } [DisplayName("Credit Card")] [CreditCard(ErrorMessage = "Please enter correct credit card number.")] public string CreditCardNumber { get; set; } [Required(ErrorMessage = "Please enter your email address")] [DataType(DataType.EmailAddress)] [Display(Name = "Email address")] [MaxLength(50)] [EmailAddress(ErrorMessage = "Please enter correct email")] public string Email { get; set; } }
三,具体验证规则
下面就来一一介绍我们可以用于MVC项目中的验证规则:1. RequiredAttribute
必填项检查,应用上该特性的字段,必须输入值。
2. CompareAttribute
CompareAttribute用于比较2个属性是否相同. 注册用户的时候,常常需要输入2次密码,其中一个是确认的密码,要求2个密码框中的密码必须相同,这个时候就可以应用CompareAttribute
3. RangeAttribute
用来限定数据范围,比如Age年龄字段,你可以限制数据必须在0~150之间。
4. StringLengthAttribute,MaxLengthAttribute和MinLengthAttribute
这3个都是用来对于字符串属性长度进行验证的。StringLength用来限定具体的长度,而后面的,一个是最大可输入长度,一个是最小的输入长度, 注意MaxLength和MinLength可以用于String和Array。
5. CreditCardAttribute验证
这个是用来验证信用卡的,支持多种类型信用卡的验证。
6. EmailAddressAttribute和UrlAttribute
这个非常简单,就是用来验证Email格式和Url格式的
7. FileExtensionsAttribute
用来检查文件名称后缀。假如你禁止上传.exe文件到服务器,这个时候,就可以通过它来做限制。
8. RegularExpressionAttribute
最后,如果上面的这些都无法符合你的要求,可以试试这个RegularExpressionAttribute. 它可以指定一个正则表达式作为验证规则。
相关文章推荐
- Asp.net MVC验证哪些事(2)-- 验证规则总结以及使用
- Asp.net MVC验证哪些事(2)-- 验证规则总结以及使用
- Asp.net MVC验证那些事(1)-- 介绍和验证规则使用
- Asp.net MVC验证那些事(1)-- 介绍和验证规则使用----[转]--[并修改了部分内容]
- 总结一下工作中遇到的NPOI以及在ASP.NET MVC中的使用
- Asp.net MVC验证那些事(1)-- 介绍和验证规则使用
- Asp.net MVC验证那些事(1)-- 介绍和验证规则使用
- 深入ASP.NET MVC Model验证-使用.NET验证特性类指定Mode验证规则
- ASP.NET MVC基于标注特性的Model验证:一个Model,多种验证规则
- 我要学ASP.NET MVC 3.0(十): MVC 3.0 使用 Forms身份验证
- 【Asp.Net MVC】asp.net mvc Model验证总结及常用正则表达式
- 在Asp.Net MVC中使用ModelBinding构造Array、List、Collection以及Dictionary
- 在ASP.NET MVC中使用Knockout实践07,自定义验证信息的位置与内容
- Asp.Net MVC 使用 DataAnnotations 进行模型验证
- Infragistics的介绍以及在ASP.net中使用的总结
- ASP.NET MVC5+MySql使用ASP.NET 身份验证
- ASP.NET MVC+EF在服务端分页使用jqGrid以及jquery Datatables的注意事项
- NPOI以及在ASP.NET MVC中的使用
- IIS中使用ASP.NET MVC的经验总结