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;}