李sir_Blog

博客园 首页 联系 订阅 管理

数据注解,个人认为就是用于数据模型的数据校验使用(这是其中的一个用处)
在这里,我将其用于替换原来接口中繁琐的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 :在前端显示的文本框类型

Remote :服务端验证

[Editable(false)] //放在主键上显示不可修改

直接上代码:
这里注意要引进MVC,在Nuget里面安装

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.ComponentModel.DataAnnotations;

namespace DataAnnotations.Web.Areas.Api.Controllers
{
public class TestController : Controller
{
public class TestModel
{
/// <summary>
/// 定义用户名必填
/// </summary>
[Required(ErrorMessage = "请输入名字")]
public string name { set; get; }
/// <summary>
/// 密码
/// </summary>
[Required]
[StringLength(128, MinimumLength = 6, ErrorMessage = "密码不能低于六位数")]
public string pwd { set; get; }
[Required]
[System.ComponentModel.DataAnnotations.Compare("pwd", ErrorMessage = "两次密码输入不一致")]
public string rpwd { set; get; }
//定义邮件为必填,且满足邮件格式
[Required]
[RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}")]
public string email { get; set; }
[Required]
[Range(1, 100)]
//定义年纪在1到100之间
public int age { set; get; }
}
// GET: Api/Test
[HttpPost]
public ActionResult Index(
TestModel model)
{
if (!ModelState.IsValid)
{
var xx = ModelState.Values
.SelectMany(v => v.Errors);
foreach (var ss in xx)
{
Console.WriteLine(ss.ErrorMessage);
}
var message = string.Join(" |", ModelState.Values
.SelectMany(v => v.Errors)
.Select(e => e.ErrorMessage));
return Json(new
{
msg = message,
errcode = 0
});
}
return Json(new
{
msg = "提交成功",
errcode = 0
});
}
}
}
————————————————
版权声明:本文为CSDN博主「ldl_csdn_ios」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ldl_csdn_ios/article/details/107410783

posted on 2021-12-23 11:05  李sir  阅读(234)  评论(0编辑  收藏  举报