ASP.NET 核心 6 异常中间件和验证
ASP.NET Core 6 ExceptionMiddleware and Validations
在 ASP.NET Core 6 中,我有一个自定义中间件来处理返回特定结构的异常:
services.AddControllers(options => options.Filters.Add(typeof(CustomHttpResponseExceptionFilter)));
效果很好。但是,当参数验证失败时,例如:
GetSomethingAsync([Required][MinLength(2)]string orderNumber)
未调用 CustomHttpResponseExceptionFilter
。
我在哪里可以拦截失败,例如数据标注 [Required]
?
您好,您需要自定义 ModelStateInvalidFilter 的行为。
为此,您可以在 Program.cs
中执行以下操作
builder.Services.AddControllers().ConfigureApiBehaviorOptions(options =>
{
options.InvalidModelStateResponseFactory = context =>
{
// Expects an instance of IActionResult.
};
});
您可以在 Microsoft's documentation 找到更多信息。
在 ASP.NET Core 6 中,我有一个自定义中间件来处理返回特定结构的异常:
services.AddControllers(options => options.Filters.Add(typeof(CustomHttpResponseExceptionFilter)));
效果很好。但是,当参数验证失败时,例如:
GetSomethingAsync([Required][MinLength(2)]string orderNumber)
未调用 CustomHttpResponseExceptionFilter
。
我在哪里可以拦截失败,例如数据标注 [Required]
?
您好,您需要自定义 ModelStateInvalidFilter 的行为。
为此,您可以在 Program.cs
中执行以下操作builder.Services.AddControllers().ConfigureApiBehaviorOptions(options =>
{
options.InvalidModelStateResponseFactory = context =>
{
// Expects an instance of IActionResult.
};
});
您可以在 Microsoft's documentation 找到更多信息。