У меня настроено промежуточное программное обеспечение для обработки ошибок в моем приложении API.
в startup.cs
я получил следующий код
app.UseErrorHandlingMiddleware(); //this is custom extension method that just does builder.UseMiddleware<ErrorHandlingMiddleware>();
app.UseAuthentication;
app.UseMvc();
любые ошибки, возникающие в приложении, отлавливаются промежуточным программным обеспечением, но если я отправляю недействительную модель в действие контроллера, ошибка проверки состояния модели не обнаруживается моим промежуточным программным обеспечением. Я получаю стандартный 400 неверный ответ на запрос, такой как:
{"errors": {"Имя пользователя": ["Поле имени пользователя обязательно."]}, "Title": "Произошла одна или несколько ошибок проверки.", "Status": 400, "traceId": " 0HLNLAV1FS4IJ: 00000002" }
Что мне нужно сделать, чтобы связующее ПО получало эти ошибки?
Методы вызова промежуточного программного обеспечения следующие:
public async Task Invoke(HttpContext context /* other dependencies */)
{
try
{
await next(context);
}
catch (Exception ex)
{
await HandleExceptionAsync(context, ex);
}
}
Нужно ли мне использовать ActionFilter для проверки состояния модели и генерировать исключение, если произошла ошибка, для того, чтобы мое промежуточное программное обеспечение ошибки получило его?