Перенаправление на главную страницу / Просмотр страницы с ошибками в ASP.NET Core 2.0 MVC - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь создать пользовательскую страницу просмотра ошибок, если в моей веб-странице mvc произошла ошибка.В идеале, я хочу, чтобы в случае возникновения ошибки отображалось представление «Просмотр из любого действия контроллера».

Я пробовал несколько разных способов, но ни один из них не уловил исключения, и я получил обычную страницу ошибки при запуске приложения.(после того, как я специально добавил ошибки, чтобы попробовать его).

В настоящее время у меня просто есть «Ошибка» Razor View в моей домашней папке и я возвращаю вид, как обычно, в HomeController

Startup.cs

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
    }

    ...
}

HomeController.cs

public IActionResult Error()
{
    return View();
}

1 Ответ

0 голосов
/ 29 января 2019
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
    }

    ...
}

Посмотрите на приведенную выше конфигурацию.Здесь, когда вы разрабатываете приложение для Visual Studio, оно не будет перенаправлять на /Home/Error, поскольку оно установлено для другой другой среды, такой как производственная среда.Вместо этого он покажет страницу сведений об исключении из-за этой app.UseDeveloperExceptionPage();

Если вы хотите перенаправить на /Home/Error из-за любой ошибки в среде Production и Development, то настройте следующим образом:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
     app.UseExceptionHandler("/Home/Error");

}

Затем в методе Error:

public IActionResult Error()
{
    var pathFeature = HttpContext.Features.Get<IExceptionHandlerPathFeature>();
    Exception exception = pathFeature?.Error; // Here will be the exception details.

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