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>  
  • 相关阅读:
    10-2[RF] OOB validation
    5.css背景以及书写位置
    4.css基础
    3.表单form
    2.表格
    1.html基础
    正则表达式
    协程
    7.树与树算法
    6.排序与二分查找
  • 原文地址:https://www.cnblogs.com/william-lin/p/4226712.html
Copyright © 2011-2022 走看看