内置数据 校验 使用起来 比较 方便,微软提供 非常常用的 内置数据校验
下面 介绍 基本 使用
1. 创建 ModifyUser.cs 文件
using System.ComponentModel.DataAnnotations;
namespace aspnetcore014
{
public class ModifyUser
{
//以下 只是举例 常用 ,但不局限 包含 这么多 效验
[MinLength(3,ErrorMessage ="用户名少于3位,太短")]
public string Name { get; set; }
[Required(ErrorMessage ="属性为必须的")]
public string Email { get; set; }
public string Password1 { get; set; }
[Compare("Password1",ErrorMessage ="两次密码必须相同")]
public string Password2 { get; set; }
}
}
2. 调用 接口
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace aspnetcore014.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class Test1Controller : ControllerBase
{
[HttpPut]
public string ModifyUser(ModifyUser modifyUser)
{
return "ok";
}
}
}
3.故意 写错。 返回的错误信息 如下
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "00-5ab1be14e34dfaf08709128ab25eb4f4-1cd9a00ddb47fac4-00",
"errors": {
"Name": [
"用户名少于3位,太短"
],
"Password2": [
"两次密码必须相同"
]
}
}
内置 数据效验的 缺点:
1.耦合在一起,不能单独使用,比如 同一个类 在不同 地方需要 效验 不同,这里的 内置数据校验 就无法满足。
2. 自定义内置数据校验 比较麻烦。
解决办法 请看 笔者写的 asp.net core FluentValidation的数据效验 的基本使用_持久的胜利的博客-CSDN博客
文章