asp.net core 内置数据校验

内置数据 校验 使用起来 比较 方便,微软提供 非常常用的 内置数据校验

下面 介绍 基本 使用

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博客

 文章

你可能感兴趣的:(.NET,c#,.net)