UseExceptionHandler сохранить контекст и перенаправить на контроллер - PullRequest
0 голосов
/ 18 июня 2019

Мне просто интересно узнать, как работает этот фрагмент кода ниже.

app.UseExceptionHandler("/Home/Error");

public class HomeController : Controller {
   public IActionResult Error() {
        // Im able to retrieve the error and the user context
        var ctx = HttpContext.Features.Get<IExceptionHandlerFeature>();
   }
}

Однако, если я реализовал то же самое с использованием делегата

app.UseExceptionHandler(a => a.Run(async context => {
    context.Response.Redirect("/home/error");
}

public class HomeController : Controller {
   public IActionResult Error() {
        // I get null
        // What logic do I need to put to behave it like the above one
        var ctx = HttpContext.Features.Get<IExceptionHandlerFeature>();
   }
}

Я знаю, что это из-за302 перенаправление, но как app.UseExceptionHandler("/Home/Error"); может это сделать, как он может повторно выполнить запрос с другим контроллером.Любая помощь очень ценится.

Кроме того, я просмотрел исходный код https://github.com/aspnet/AspNetCore/blob/master/src/Middleware/Diagnostics/src/ExceptionHandler/ExceptionHandlerExtensions.cs, но не уверен, что получил его полностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...