zoukankan      html  css  js  c++  java
  • C# MVC模式 404 500页面设置方法

    <customErrors mode="On" defaultRedirect="Controllers/Action">
    <error statusCode="403" redirect="Controllers/Action" /> <error statusCode="404" redirect="Controllers/Action" /> </customErrors> 这里不是对应你想转到的页面而是你所想跳转的某个Controllers 中的某个Action

    方法二:

    protected void Application_EndRequest()
    {
            var statusCode = Context.Response.StatusCode;
            var routingData = Context.Request.RequestContext.RouteData;
            if (statusCode == 404 || statusCode == 500)
            {
               Response.Clear();
               var area = DataHelper.ConvertTo(routingData.DataTokens["area"], string.Empty);
               if (area == "Admin")
               {
                    Response.RedirectToRoute("Admin_Default", new { controller = "BackError", action = "NotFound", IsReload = 1 });
               }
               else
               {
                    Response.RedirectToRoute("Default", new { controller = "Error", action = "NotFound", id = UrlParameter.Optional });
               }
    
           }
    }

    方法三:

    Global.aspx.cs
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)  
    {  
        filters.Add(new CustomHandlerErrorAttribute());  
    }  

    CustomHandlerErrorAttribute.cs

    public class CustomHandlerErrorAttribute : HandleErrorAttribute  
    {  
        public override void OnException(ExceptionContext filterContext)  
        {  
            if (filterContext.ExceptionHandled)  
            {  
                return;  
            }  
      
            filterContext.Controller.ViewData.Model = filterContext.Exception;  
      
            filterContext.Result = new ViewResult   
            {   
                ViewName = "Error",   
                ViewData = filterContext.Controller.ViewData   
            };  
      
            filterContext.ExceptionHandled = true;  
        }  
    }  

    web.config <system.web>

    <customErrors mode="On">  
      <error redirect="/home/error" statusCode="404" />  
    </customErrors>  

    web.config  <system.webServer>

    <httpErrors errorMode="Custom" existingResponse="PassThrough">  
    </httpErrors>  

    Error.cshtml

    <div class="box">  
        @{  
            
            var exception = ViewData.Model;  
            var statusCode = exception == null ? 404 : 500;  
            Response.StatusCode = statusCode;  
            if (statusCode == 404)  
            {  
                <h3>404 Page not found!</h3>  
                <p>没有找到该网页!</p>  
            }  
            else if (statusCode == 500)  
            {  
                <h3>500 程序异常</h3>  
                <p>@exception.Message</p>  
            }  
        }  
        <p style="font-size: 12px; color: Gray">请使用浏览器的后退功能已保证您填写的数据没有丢失!</p>  
    </div>  
  • 相关阅读:
    ytu 2030: 求实数绝对值(水题)
    [PHP] 链表数据结构(单链表)
    PHP将数据写入指定文件中
    PHP获取文件后缀名
    PHP数组序列化和反序列化
    PHP二维数组(或任意维数组)转换成一维数组的方法汇总
    PHP获取文件大小的方法详解
    PHP中嵌套函数被调用时出现报错的问题
    PHP递归排序
    PHP实现简单倒计时
  • 原文地址:https://www.cnblogs.com/william-lin/p/4226712.html
Copyright © 2011-2022 走看看