首页 > 代码库 > C# MVC模式 404 500页面设置方法

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 =http://www.mamicode.com/ 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 =http://www.mamicode.com/ 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>  

 

C# MVC模式 404 500页面设置方法