asp.net MVC3上的自定义错误页面
我正在开发一个MVC3基础网站,我正在寻找一个处理错误的解决方案,并为每种错误渲染自定义视图。因此,假设我有一个“错误”控制器,其主要操作是“索引”(通用错误页面),并且此控制器将针对用户可能出现的错误(如“Handle500”或“HandleActionNotFound”)执行更多操作。
因此,网站上可能发生的每个错误都可能由此“错误”控制器处理(例如:“Controller”或“Action”未找到,500,404,dbException等)。
我使用Sitemap文件来定义网站路径(而不是路由)。
这个问题已经回答了,这是对Gweebz的回复
我的最终applicaiton_error方法如下:
protected void Application_Error() {//while my project is running in debug modeif (HttpContext.Current.IsDebuggingEnabled && WebConfigurationManager.AppSettings["EnableCustomErrorPage"].Equals("false")){ Log.Logger.Error("unhandled exception: ", Server.GetLastError());}else{ try { var exception = Server.GetLastError(); Log.Logger.Error("unhandled exception: ", exception); Response.Clear(); Server.ClearError(); var routeData = new RouteData(); routeData.Values["controller"] = "Errors"; routeData.Values["action"] = "General"; routeData.Values["exception"] = exception; IController errorsController = new ErrorsController(); var rc = new RequestContext(new HttpContextWrapper(Context), routeData); errorsController.Execute(rc); } catch (Exception e) { //if Error controller failed for same reason, we will display static HTML error page Log.Logger.Fatal("failed to display error page, fallback to HTML error: ", e); Response.TransmitFile("~/error.html"); }}}
一只萌萌小番薯
呼唤远方