首页 > Web开发 > 详细

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

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

在 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中显示自定义错误页面

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!