Я видел много примеров, когда TryHandleAsync записывает ответ JSON, но я m в среде MVC и хотите вернуть HTML-страницу. У меня есть действие «Ошибка» в моем HomeController, которое показывает моим пользователям общую страницу ошибки (например, «Пожалуйста, свяжитесь с XXX, если проблема не исчезнет...»).
Я мог бы просто выполнить следующее:
Код: Выделить всё
internal sealed class GlobalExceptionHandler : IExceptionHandler
{
private readonly ILogger _logger;
public GlobalExceptionHandler(ILogger logger)
{
_logger = logger;
}
public async ValueTask TryHandleAsync(HttpContext httpContext, Exception exception, CancellationToken cancellationToken)
{
/* Doing some logic here depending on the exception type */
var message = ....;
/* Logging the exception */
_logger.LogError(exception, message);
httpContext.Response.Redirect("/Home/Error");
return true;
}
}
Я пытался вызвать движок Razor, чтобы получить html моего представления ошибок, аналогично тому, что показано здесь: https://weblog.west-wind.com/posts/2022 ... to-String- в ASPNET-Core. Но как этого добиться в методе TryHandleAsync? Получение ActionContext и т. д.
Заранее спасибо!
Подробнее здесь: https://stackoverflow.com/questions/791 ... t-redirect
Мобильная версия