当在输入模型中添加验证属性[required]或者继承ValidationAttribute时,在program下添加:
var builder = WebApplication.CreateBuilder(args);
builder.Services.Configure<ApiBehaviorOptions>(options =>
{
options.InvalidModelStateResponseFactory = actionContext =>
{
//获取验证失败的模型字段
var errors = actionContext.ModelState
.Where(s => s.Value != null && s.Value.ValidationState == ModelValidationState.Invalid)
.SelectMany(s => s.Value!.Errors.ToList())
.Select(e => e.ErrorMessage)
.ToList();
// 统一返回格式
var result = new ApiResult()
{
Code = StatusCodes.Status400BadRequest,
Msg = "数据验证不通过!",
Data = errors
};
return new BadRequestObjectResult(result);
};
});
还有其他方式,可参考:https://zhuanlan.zhihu.com/p/560112509