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 }

 

posted @ 2021-07-01 15:28  智阿广  阅读(135)  评论(0编辑  收藏  举报