Beispiel #1
0
        protected void Application_Error(object sender, EventArgs e)
        {
            var app     = (MvcApplication)sender;
            var context = app.Context;
            var ex      = app.Server.GetLastError();

            context.Response.Clear();
            context.ClearError();
            var httpException = ex as HttpException;

            var routeData = new RouteData();

            routeData.Values["controller"] = "error";
            routeData.Values["action"]     = "Index";
            if (httpException != null)
            {
                switch (httpException.GetHttpCode())
                {
                case 403:
                    routeData.Values["action"] = "NoPermission";
                    break;

                case 404:
                    routeData.Values["action"] = "NotFound";
                    break;

                default:
                    routeData.Values["action"] = "Index";
                    break;
                }
            }
            IController controller = new errorController();

            controller.Execute(new RequestContext(new HttpContextWrapper(context), routeData));
        }