.net core 统一参数校验及异常处理
2021-03-04 20:29
标签:list var get 异常 gis 自动 empty 空间 cut 相信大家都知道在前后端分离的开发模式中,异常处理和参数检验都是很重要的事情 那么如何做好处理呢? 首先我们来介绍一下如何做参数校验: 参数检验那我们一定会想到实体类属性,Required 需要引用命名空间System.ComponentModel.DataAnnotations 其实除了Required 还有很多具体大家可以参考 https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations?redirectedfrom=MSDN&view=netcore-3.1 我们这里已注册为例 首先来定义我们实体类 实体属性也可以都好隔开看个人的习惯, 下面来编写我们的统一参数处理,这里我们是已中间件的形式 .netcore中的中间件大家应该都了解过如果不清楚的话推荐大家去看看 园子里有很多相关文章,可以自行了解 代码: startup.cs .net core 统一参数校验及异常处理 标签:list var get 异常 gis 自动 empty 空间 cut 原文地址:https://www.cnblogs.com/Bczc/p/12910865.html.net core 统一参数校验及异常处理
public class UserRegisterPostVm
{
[Required(ErrorMessage = "用户Code不能为空")]
public string Code { get; set; }
[Required(ErrorMessage = "用户名称不能为空")]
public string Name { get; set; }
[Required(ErrorMessage = "用户年龄不能为空")]
[Range(1, 100, ErrorMessage = "年龄必须介于1~100之间")]
public int? Age { get; set; }
[Required(ErrorMessage = "用户邮箱不能为空")]
[EmailAddress(ErrorMessage = "请填写正确的邮箱地址")]
public string Email { get; set; }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace ApiSource
{
public class ValidateModelAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
if (!context.ModelState.IsValid)
{
var result = context.ModelState.Keys
.SelectMany(key => context.ModelState[key].Errors.Select(x => new ValidationError(key, x.ErrorMessage)))
.ToList();
context.Result = new ObjectResult(result);
}
}
}
public class ValidationError
{
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Field { get; }
public string Message { get; }
public ValidationError(string field, string message)
{
Field = field != string.Empty ? field : null;
Message = message;
}
}
}
services.AddMvc(options =>
{
options.Filters.Add
上一篇:libcurl安装
下一篇:【CSS】伪类与伪元素
文章标题:.net core 统一参数校验及异常处理
文章链接:http://soscw.com/index.php/essay/60154.html