zoukankan      html  css  js  c++  java
  • MVC 实现自定义404错误页

    直接进入正题。

    在HomeController中有一个NotFound的Action方法。

    public ActionResult NotFound()
    {
        return View();
    }
    View Code

    对应的视图

    @{
        Layout = null;
    }
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width" />
        <title>出错了</title>
    </head>
    <body>
        <div style="text-align:center;font-size:1.5em"> 
            为什么受伤的总是我 o(╥﹏╥)o
        </div>
    </body>
    </html>
    View Code

    在Global.asax.cs中定义的Application_Error方法,在方法中获取错误并判断是否是静态资源的404错误,如果不是,则使用自定义的错误页显示

    private readonly string[] staticFileExt = new string[] { ".axd", ".ashx", ".bmp", ".css", ".gif", ".htm", ".html", ".ico", ".jpeg", ".jpg", ".js", ".png", ".rar", ".zip",".woff",".ttf" ,".eot",".svg"};
    View Code
    protected void Application_Error()
    {
        var error = Server.GetLastError() as HttpException;
        if (error!= null && error.GetHttpCode() == 404)
        {
            if (!IsStaticResource(Request))
            {
                Response.Clear();
                Server.ClearError();
                Response.TrySkipIisCustomErrors = true;
    
                IController controller = new HomeController();
    
                var routeData = new RouteData();
                routeData.Values.Add("controller", "Home");
                routeData.Values.Add("action", "NotFound");
    
                controller.Execute(new RequestContext(new HttpContextWrapper(Context), routeData));
            }
        }
    }
    
    private bool IsStaticResource(HttpRequest request)
    {
        string extension = VirtualPathUtility.GetExtension(request.Path);
        return staticFileExt.Contains(extension);
    }
    View Code

    当前台访问存在的页面或资源时:

     

     

     

    当访问不存在的非静态资源时,显示自定义错误页

     

     

    当访问不存在的静态资源时:

     

  • 相关阅读:
    JavaScript的语法、数据类型、基本算数和逻辑运算操作
    ES6之常用开发知识点:入门(一)
    ES6中map数据结构
    VUE路径问题

    JS简易计算器的实现,以及代码的优化
    格雷编码
    H5网页布局+css代码美化
    jQuery---五角星评分案例
    Ajax工作原理及优缺点
  • 原文地址:https://www.cnblogs.com/godbell/p/7811979.html
Copyright © 2011-2022 走看看