码迷,mamicode.com
首页 > Web开发 > 详细

ASP.NET Core中显示自定义错误页面

时间:2016-10-27 19:17:26      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:实现   pre   art   分解   错误   int   mvc   div   asp.net   

在 ASP.NET Core 中,默认情况下当发生500或404错误时,只返回http状态码,不返回任何内容,页面一片空白。

如果在 Startup.cs 的 Configure() 中加上 app.UseStatusCodePages(); ,500错误时依然是一片空白(不知为何对500错误不起作用),404错误时有所改观,页面会显示下面的文字:

Status Code: 404; Not Found 

如果我们想不管500还是404错误都显示友好的自定义错误页面,该如何实现呢?请看下面的分解。

对于500错误,我们改用 app.UseExceptionHandler() 进行截获;

对于404错误,我们用 app.UseStatusCodePages() 的增强版 app.UseStatusCodePagesWithReExecute() 进行截获;

然后转交给显示自定义错误页面的URL进行处理。

app.UseExceptionHandler("/errors/500");
app.UseStatusCodePagesWithReExecute("/errors/{0}");

接着针对上面的URL,在 MVC Controller 中实现之。

public class ErrorsController : Controller
{
    [Route("errors/{statusCode}")]
    public IActionResult CustomError(int statusCode)
    {
        if(statusCode == 404)
        {
            return View("~/Views/Errors/404.cshtml");
        }
        return View("~/Views/Errors/500.cshtml");
    }        
}

ASP.NET Core中显示自定义错误页面

标签:实现   pre   art   分解   错误   int   mvc   div   asp.net   

原文地址:http://www.cnblogs.com/dudu/p/6004777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!