public override void OnActionExecuting(ActionExecutingContext filterContext) { if (PageEditing.PageIsInEditMode) { return; } Logger.Debug("Starting 404 handler action filter"); var request = filterContext.HttpContext.Request; filterContext.HttpContext.Response.TrySkipIisCustomErrors = true; var statusCode = NotFoundPageUtil.GetStatusCode(request); filterContext.HttpContext.Response.StatusCode = statusCode; var status = NotFoundPageUtil.GetStatus(statusCode); if (!string.IsNullOrEmpty(status)) { filterContext.HttpContext.Response.Status = status; } NotFoundPageUtil.SetCurrentLanguage(filterContext.HttpContext); filterContext.Controller.ViewBag.Referrer = NotFoundPageUtil.GetReferer(request); filterContext.Controller.ViewBag.NotFoundUrl = NotFoundPageUtil.GetUrlNotFound(request); filterContext.Controller.ViewBag.StatusCode = statusCode; }