ASP.NET Core 6异常中间件和验证

4
在ASP.NET Core 6中,我有一个自定义的中间件来处理异常并返回特定的结构:
 services.AddControllers(options => options.Filters.Add(typeof(CustomHttpResponseExceptionFilter)));

工作得很好。但是,当参数未通过参数验证,例如:

GetSomethingAsync([Required][MinLength(2)]string orderNumber) 
CustomHttpResponseExceptionFilter 没有被调用。
我应该在哪里拦截例如数据注释 [Required] 的失败?
1个回答

2

你需要自定义ModelStateInvalidFilter的行为。

为此,您可以在Program.cs中执行以下操作

builder.Services.AddControllers().ConfigureApiBehaviorOptions(options =>
{
    options.InvalidModelStateResponseFactory = context =>
    {
        // Expects an instance of IActionResult.
    };
});

您可以在微软文档中找到更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接