参考文档:
处理 ASP.NET Core Web API 中的错误 | Microsoft Docs
使用 ASP.NET Core 创建 Web API | Microsoft Docs
关于如何输出自定义的验证结果
方式一,直接禁用,然后自己写输出
如下所示,将 SuppressModelStateInvalidFilter 设置为true,
builder.Services.AddControllers()
    .ConfigureApiBehaviorOptions(options =>
    {
        options.SuppressConsumesConstraintForFormFileParameters = true;
        options.SuppressInferBindingSourcesForParameters = true;
        options.SuppressModelStateInvalidFilter = true;
        options.SuppressMapClientErrors = true;
        options.ClientErrorMapping[StatusCodes.Status404NotFound].Link =
            "https://httpstatuses.com/404";
    });
接着,就可以在Action中写逻辑
if (!ModelState.IsValid)
{
    return BadRequest(ModelState);
}
或者自定义一个filter,在filter里面写逻辑,(注:filter可以全局注入或者写在Action上)
public class OutputJsonErrorFilter : IActionFilter
{
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        if (!context.ModelState.IsValid)
        {
            context.Result = new JsonResult(APIResult.CreateError(0, error));
            ....
        }
    }
}
方式二,改写默认行为处理
builder.Services.AddControllers()
    .ConfigureApiBehaviorOptions(options =>
    {
        options.InvalidModelStateResponseFactory = context =>
            new BadRequestObjectResult(context.ModelState)
            {
                ContentTypes =
                {
                    // using static System.Net.Mime.MediaTypeNames;
                    Application.Json,
                    Application.Xml
                }
            };
    })
    .AddXmlSerializerFormatters();
 站点公众号
                站点公众号