У меня есть приложение ASP.NET Core MVC, которое вызывает ASP.NET Core Web API для некоторых данных.Веб-API может возвращать ответ «Плохой запрос» с ошибками состояния модели, и я хочу автоматически обрабатывать неправильный запрос и отображать ошибки состояния модели, поступающие из веб-API, в моем представлении MVC.
Я попытался написать исключениеФильтр для этого, но я не уверен, как сказать фильтру исключений для отображения представления, вызвавшего исключение.
public class WebApiExceptionFilter : IExceptionFilter
{
public void OnException(ExceptionContext context)
{
// My web API client will throw a WebApiException if it doesn't produce a successful response
if (context.Exception is WebApiException webApiEx)
{
switch (webApiEx.StatusCode)
{
case StatusCodes.Status400BadRequest:
context.ModelState.AddJsonModelErrors(webApiEx.Response); // This method de-serialises the model state from the web API response
// and adds it to the MVC model state
context.ExceptionHandled = true;
return;
}
}
}
}
Как я могу получить фильтр исключений, чтобы вернуть представление, в котором произошло исключение, такЯ могу отобразить ошибки модели?Или, альтернативно, есть ли лучший способ сделать это?Я не хочу пытаться поймать каждый вызов веб-API, который я выполняю в действиях MVC.