Asp.Net Mvc验证属性简单介绍
Table of Contents
1 说明
Datannotations是一种基于注解的验证方式,以提供给Model Validation时的额外的引用信息.
| 属性名称 | 说明 |
|---|---|
| Compare | 比较两个属性 |
| CustomValidation | 自定义验证方法 |
| DataType | 指定与数据字段产生关联的其他类型名称 |
| Display | 指定显示字段名的字符串,默认为字段名 |
| Key | 表示唯一识别实体的一个或多个属性 |
| MaxLength | 指定属性中所允许的数据或字符串数据的最大长度 |
| MinLength | 指定属性中所允许的数据或字符串数据的最小长度 |
| Range | 指定数据字段值的数值范围条件约束 |
| RegularExpression | 指定数据字段值必须符合指定的正则表达式 |
| Required | 指出数据字段为必填 |
| ScaffoldColumn | 指定类或数据列是否使用基架 |
| StringLength | 指定数据字段中允许的最小和最大字符长度 |
| UIHint | 指定Dynamic Data用来显示数据字段的模板或用户控件 |
2 验证属性例子
2.1 Compare属性类
在一些重要的表单,经常会要求用户端重复确认(Double Check)是否输入错误,即可利用Compare属性来进行比较.
[Compare(Email2¨)] public string Email{get;set;} public string Email2{get;set;}
2.2 DataType属性类
| 属性名称 | 说明 |
|---|---|
| CreditCard | 指定数据字段值输入信用卡卡号 |
| EmailAddress | 验证电子邮件地址 |
| EnumData | 让.NET Framework枚举类型对应到数据列 |
| FileExtentions | 验证文件的扩展名 |
| Phone | 指定数据字段值为正确的电话号码 |
| Url | 提供Url验证 |
在.NET Framework 3.5 SP1中提供了一个DataType属性类,在4.0/4.5中进行了多个继承自DataTypeAttribute的类,上面是汇总:
[DataType(DataType.EmailAddress)] public string Email{get;set;}
2.3 Range属性类
Range属性类定义字段的范围(指定最大值和最小值),它有三个构造函数:
- RangeAttribute(Double,Double))
- RangeAttribute(Int32,Int32)
- RangeAttribute(Type,String,String)
前两个重载针对数值进行处理,第一个参数指定最小值,第二个参数指定最大值.
[Display(Name =¨库存¨)]
[Range(0,1024,ErrorMessage =¨{0}必须介于{1}到{2}之间¨ ]
public Nullable<short> UInitsInStock{get;set;}
Range属性类的第三个重载属性比较特别,它可以指定特定类型(Type)的范围,通常只针对日期(DateTime)类型进行处理.
[Range(typeof(DateTime),¨2017-06-01,¨2017-06-30¨]
public DateTime SellEndDate{get;set;}