C# 重定向到ASP.NET Core 2.0 MVC中的主页/错误视图页

C# 重定向到ASP.NET Core 2.0 MVC中的主页/错误视图页,c#,model-view-controller,asp.net-core,asp.net-core-2.0,C#,Model View Controller,Asp.net Core,Asp.net Core 2.0,我正在尝试为mvc网页中的任何地方发生错误时创建一个自定义错误视图页面。理想情况下,我希望在发生错误时显示来自任何控制器操作的视图 我尝试了几种不同的方法,但没有一种能捕捉到异常,在启动应用程序时,我得到了通常的错误页面(在故意输入错误以进行尝试之后) 目前,我的主文件夹中有一个Razor视图“错误”,并像HomeController中一样返回视图 Startup.cs public void Configure(IApplicationBuilder app, IHostingEnvironm

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

我尝试了几种不同的方法,但没有一种能捕捉到异常,在启动应用程序时,我得到了通常的错误页面(在故意输入错误以进行尝试之后)

目前,我的主文件夹中有一个Razor视图“错误”,并像HomeController中一样返回视图

Startup.cs

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

    ...
}
public IActionResult Error()
{
    return View();
}
HomeController.cs

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

    ...
}
public IActionResult Error()
{
    return View();
}
看看上面的配置。在这里,当您在Visual Studio上开发应用程序时,不会重定向到
/Home/Error
,因为它是为其他环境(如生产环境)设置的。相反,它将显示异常详细信息页面,原因是
app.UseDeveloperExceptionPage()

如果由于
生产
开发
环境中的任何错误而要重定向到
/Home/Error
,请按如下方式配置:

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

}
然后在
错误
方法中:

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

    return View();
}
public IActionResult错误()
{
var pathFeature=HttpContext.Features.Get();
Exception Exception=pathFeature?.Error;//以下是异常详细信息。
返回视图();
}
看看上面的配置。在这里,当您在Visual Studio上开发应用程序时,不会重定向到
/Home/Error
,因为它是为其他环境(如生产环境)设置的。相反,它将显示异常详细信息页面,原因是
app.UseDeveloperExceptionPage()

如果由于
生产
开发
环境中的任何错误而要重定向到
/Home/Error
,请按如下方式配置:

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

}
然后在
错误
方法中:

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

    return View();
}
public IActionResult错误()
{
var pathFeature=HttpContext.Features.Get();
Exception Exception=pathFeature?.Error;//以下是异常详细信息。
返回视图();
}

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