我已經在MVC(4)中設置了錯誤處理,並且它工作得很好。我在global.asax中註冊了HandleErrorAttribute,並在web.config中設置了適當的配置。 但是,如果我重定向到錯誤視圖並且錯誤視圖本身會引發錯誤,那麼我會無休止地重定向到錯誤頁面。錯誤發生在應用程序之外管理的佈局和佈局中。如果佈局中存在錯誤,我會調整。我怎樣才能防止這一點?我應該使用什麼樣的錯誤處理回退?使用不同的佈局不是一種選擇。Asp.Net MVC:在錯誤視圖中引發處理錯誤
1
A
回答
1
以下是我的操作方法。試試看:
protected void Application_Error(object sender, EventArgs e)
{
//Retrieving the last server error
var exception = Server.GetLastError();
//Erases any buffered HTML output
Response.Clear();
//Declare the exception
var httpException = exception as HttpException;
var routeData = new RouteData();
routeData.Values.Add("controller", "Error"); //Adding a reference to the error controller
if (httpException == null)
{
routeData.Values.Add("action", "ServerError"); //Non HTTP related error handling
}
else //It's an Http Exception, Let's handle it.
{
switch (httpException.GetHttpCode())
{
//these are special views to handle each error
case 401:
case 403:
//Forbidden page.
routeData.Values.Add("action", "Forbidden");
break;
case 404:
//Page not found.
routeData.Values.Add("action", "NotFound");
break;
case 500:
routeData.Values.Add("action", "ServerError");
break;
default:
routeData.Values.Add("action", "Index");
break;
}
}
//Pass exception details to the target error View.
routeData.Values.Add("message", exception);
//Clear the error on server.
Server.ClearError();
//Avoid IIS7 getting in the middle
Response.TrySkipIisCustomErrors = true;
// Call target Controller and pass the routeData.
IController errorController = new ErrorController();
errorController.Execute(new RequestContext(
new HttpContextWrapper(Context), routeData));
}
相關問題
- 1. ASP.NET MVC 5錯誤處理
- 2. ASP.NET MVC Ajax錯誤處理
- 3. asp.net的MVC錯誤處理
- 4. 在asp.net mvc 3中的錯誤處理
- 5. 在MVC中處理錯誤
- 6. 處理ASP.NET MVC中的路由錯誤
- 7. ASP.Net中的錯誤處理MVC
- 8. 錯誤處理在asp.net mvc url
- 9. 自定義錯誤在ASP.NET MVC處理
- 10. ASP.NET MVC錯誤處理 - 視圖永不呈現Web.config問題?
- 11. Spring MVC中處理錯誤
- 12. ASP.NET MVC RC2 - 會話處理錯誤?
- 13. 錯誤處理不工作的ASP.NET MVC
- 14. ASP.NET MVC jQuery Ajax錯誤/異常處理
- 15. ASP.Net MVC - 處理錯誤的URL參數
- 16. asp.net的MVC錯誤處理Helper類
- 17. 最佳實踐錯誤處理ASP.Net MVC
- 18. asp.net mvc錯誤的路由處理
- 19. ASP.NET MVC全局錯誤處理
- 20. ASP.NET MVC處理請求錯誤
- 21. 處理MVC視圖和部分視圖的錯誤
- 22. 錯誤在視圖+ MVC
- 23. Asp.net MVC VirtualPathProvider視圖解析錯誤
- 24. 錯誤MVC 4視圖
- 25. ASP.NET MVC jQuery發佈錯誤
- 26. MVC區域錯誤處理
- 27. PHP MVC MySQL錯誤處理
- 28. MVC 3-錯誤處理
- 29. spring java mvc錯誤處理
- 30. Angular 2處理錯誤,儘管在代碼中處理,zone.js拋出錯誤或pollyfills.bundle.js會引發錯誤
當視圖中的錯誤發生時,您能調試並驗證'Application_Error'是否在global.asax中被命中? – mattytommo 2013-02-27 19:19:46