3 回答

TA貢獻1825條經(jīng)驗 獲得超6個贊
<system.web> <customErrors mode="On" > <error statusCode="404" redirect="~/Errors/Error404" /> </customErrors></system.web>
<system.web> <customErrors mode="On" > <error statusCode="404" redirect="~/Static404.html" /> </customErrors></system.web>

TA貢獻1765條經(jīng)驗 獲得超5個贊
protected void Application_EndRequest() { if (Context.Response.StatusCode == 404) { var exception = Server.GetLastError(); var httpException = exception as HttpException; Response.Clear(); Server.ClearError(); var routeData = new RouteData(); routeData.Values["controller"] = "ErrorManager"; routeData.Values["action"] = "Fire404Error"; routeData.Values["exception"] = exception; Response.StatusCode = 500; if (httpException != null) { Response.StatusCode = httpException.GetHttpCode(); switch (Response.StatusCode) { case 404: routeData.Values["action"] = "Fire404Error"; break; } } // Avoid IIS7 getting in the middle Response.TrySkipIisCustomErrors = true; IController errormanagerController = new ErrorManagerController(); HttpContextWrapper wrapper = new HttpContextWrapper(Context); var rc = new RequestContext(wrapper, routeData); errormanagerController.Execute(rc); } }
public void Fire404Error(HttpException exception) { //you can place any other error handling code here throw new PageNotFoundException("page or resource"); }
public class MyBasePageController : Controller{ protected override void OnException(ExceptionContext filterContext) { filterContext.GetType(); filterContext.ExceptionHandled = true; this.View("ErrorManager", filterContext).ExecuteResult(this.ControllerContext); base.OnException(filterContext); }}
- 3 回答
- 0 關(guān)注
- 363 瀏覽
添加回答
舉報