DataAnnotations简单的数据注解示例
数据注解,个人认为就是用于数据模型的数据校验使用(这是其中的一个用处)
在这里,我将其用于替换原来接口中繁琐的if判断数据校验。
命名空间:using System.ComponentModel.DataAnnotations;
常用校验:
1.Required :属性值必须非空或者不能只是空格,如果允许全空格可以[Required(AllowEmptyStrings = true)]
2.DisplayName :显示名 – 定义表单字段的提示名称
3.StringLength :字符串长度不能超过给定的最大长度,也可以指定最小长度:[StringLength(10, MinimumLength=2)]
4.Range :范围 – 数字的可输入范围[Range(10, 20)] ,属性值必须在指定的数值范围内,可以使用数值类型的最大最小值比如int.MinValue、int.MaxValue
5.Bind :绑定 – 列出在将请求参数绑定到模型的时候,包含和不包含的字段
6.ScaffoldColumn :支架列 - 在编辑表单的时候,需要隐藏起来的的字符 [ScaffoldColumn(true|false)]
7.Compare: 比较 - 与制定的字段值进行比较 具体见代码 [Compare(“MyOtherProperty”)]两个属性必须相同值,比如我们要求用户重复输入两次邮件地址时有用
8.RegularExpre ssion: 正则表达式匹配,字符串值必须匹配正则表达式,默认大小写敏感,可以使用(?i)修饰符关闭大小写敏感,比如[RegularExpre ssion("(?i)mypattern")]
9.DataType :在前端显示的文本框类型
10.Remote :服务端验证
11.[Editable(false)] //放在主键上显示不可修改
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Mvc; 6 using System.ComponentModel.DataAnnotations; 7 8 namespace DataAnnotations.Web.Areas.Api.Controllers 9 { 10 public class TestController : Controller 11 { 12 public class TestModel 13 { 14 /// <summary> 15 /// 定义用户名必填 16 /// </summary> 17 [Required(ErrorMessage = "请输入名字")] 18 public string name { set; get; } 19 /// <summary> 20 /// 密码 21 /// </summary> 22 [Required] 23 [StringLength(128, MinimumLength = 6, ErrorMessage = "密码不能低于六位数")] 24 public string pwd { set; get; } 25 [Required] 26 [System.ComponentModel.DataAnnotations.Compare("pwd", ErrorMessage = "两次密码输入不一致")] 27 public string rpwd { set; get; } 28 //定义邮件为必填,且满足邮件格式 29 [Required] 30 [RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}")] 31 public string email { get; set; } 32 [Required] 33 [Range(1, 100)] 34 //定义年纪在1到100之间 35 public int age { set; get; } 36 } 37 } 38 }