【问题标题】:Redirect to Home/Error View Page in ASP.NET Core 2.0 MVC在 ASP.NET Core 2.0 MVC 中重定向到主页/错误视图页面
【发布时间】:2019-01-29 10:50:04
【问题描述】:

我正在尝试为我的 mvc 网页中某处发生错误时创建一个自定义错误视图页面。理想情况下,id 希望在发生错误时显示来自任何控制器操作的视图。

我尝试了几种不同的方法,但都没有发现异常,并且在启动我的应用程序时出现了通常的错误页面(在故意输入错误以尝试它之后。)

目前,我的主文件夹中只有一个 Razor 视图“错误”,并像在 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();
}

【问题讨论】:

  • 常见的错误页面是什么意思?您是在开发环境中运行它吗?
  • @Misha Morf,您的要求不明确!如果应用程序中发生任何异常,您是否想要将其重定向到 Home Controller Error 方法,在这里您将处理或记录异常,然后您将显示一般错误消息。是吗?
  • @TanvirArjel 很抱歉造成混淆,是的,如果某处出现错误,我不希望显示默认错误消息。我希望显示错误视图。你懂我吗?
  • @KirkLarkin 只是您在 iis 上运行项目时被定向到的正常错误页面。
  • 您不会在错误视图上显示自定义错误消息吗?还是异常消息?

标签: c# model-view-controller asp.net-core asp.net-core-2.0


【解决方案1】:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
    }

    ...
}

看上面的配置。在这里,当您在 Visual Studio 上开发应用程序时,它不会重定向到 /Home/Error,因为它设置为其他其他环境,如生产环境。相反,由于这个app.UseDeveloperExceptionPage();

,它将显示异常详细信息页面

如果您因为ProductionDevelopment 环境中的任何错误而想要重定向到/Home/Error,则配置如下:

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();
}

【讨论】:

    猜你喜欢
    • 2021-02-24
    • 2018-12-13
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多