重定向到 Home/Error 在 ASP.NET Core 2.0 MVC 中查看页面
Redirect to Home/Error View Page in ASP.NET Core 2.0 MVC
我正在尝试为我的 mvc 网页中某处发生错误时制作自定义错误视图页面。理想情况下,我希望在发生错误时显示来自任何控制器操作的视图。
我尝试了几种不同的方法,但其中 none 捕获了异常,并且在启动我的应用程序时出现了通常的错误页面(在故意输入错误以进行尝试之后。)
目前,我的主文件夹中只有一个 Razor 视图 "Error",并且像往常一样在 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();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
...
}
看上面的配置。在这里,当您在 Visual Studio 上开发应用程序时,它 不会重定向到 /Home/Error
,因为它是为其他环境(如生产环境)设置的。相反,它会显示异常详细信息页面,因为 app.UseDeveloperExceptionPage();
如果由于 Production
和 Development
环境中的任何错误而要重定向到 /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();
}
我正在尝试为我的 mvc 网页中某处发生错误时制作自定义错误视图页面。理想情况下,我希望在发生错误时显示来自任何控制器操作的视图。
我尝试了几种不同的方法,但其中 none 捕获了异常,并且在启动我的应用程序时出现了通常的错误页面(在故意输入错误以进行尝试之后。)
目前,我的主文件夹中只有一个 Razor 视图 "Error",并且像往常一样在 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();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
...
}
看上面的配置。在这里,当您在 Visual Studio 上开发应用程序时,它 不会重定向到 /Home/Error
,因为它是为其他环境(如生产环境)设置的。相反,它会显示异常详细信息页面,因为 app.UseDeveloperExceptionPage();
如果由于 Production
和 Development
环境中的任何错误而要重定向到 /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();
}