欢迎光临
个人技术文档整理

统一处理 .net core 中的 404 错误异常信息

出现 404 错误的情况

  • 情况1:根据 ID 查询资料 不存在,将请求重定向为404
  • 情况2:请求的URL 不存在 或 与路由不匹配

 

默认 404 错误异常页面

通过中间件处理异常

  • UseStatusCodePages
    app.UseStatusCodePages();

  • UseStatusCodePagesWithReExecute 推荐
    app.UseStatusCodePagesWithReExecute("/Error/{0}");

    添加ErrorController  要统一显示错误信息,我们需要添加对应的控制器和视图代码,请参考以下代码:
     

        public class ErrorController : Controller
        {
            //如果状态代码为404,则路径将变为Error/404
            [Route("Error/{statusCode}")]
            public IActionResult HttpStatusCodeHandler(int statusCode)
            {
                switch (statusCode)
                {
                    case 404:
                        ViewBag.ErrorMessage = "抱歉,你访问的页面不存在";
                        break;
                }
    
                return View("NotFound");
            }
        }

    添加 【NotFound.cshtml】视图
     

    @{
        Layout = null;
        ViewBag.Title = "页面不存在";
    }
    
    <h1>@ViewBag.ErrorMessage</h1>
    
    <a href="/">
       点击此处返回首页
    </a>

  • UseStatusCodePagesWithRedirects  
    app.UseStatusCodePagesWithRedirects("/Error/{0}");

    页面会被 302重定向 到NotFound.cshtml 页面

 

 

赞(2)