回答
檢查異常的調用堆棧。
例如:
var actionMethod = new StackTrace(exception)
.GetFrames().FirstOrDefault(f =>
typeof(IController).IsAssignableFrom(f.GetMethod().DeclaringType)
).GetMethod();
不要這樣做; ExceptionContext按照OdeToCode的回答提供了一種更簡單,更簡潔,更高效的方式來訪問控制器名稱和操作。 – 2014-04-15 14:50:47
@ChristopherKing:只要你有上下文可用。 – SLaks 2014-04-17 01:18:51
我相信他會這麼做,因爲他正在處理OnException方法中的錯誤。 – 2014-04-17 13:11:34
添加以下方法在Global.asax中,把一個破發點就可以了
public void Application_Error(object sender, EventArgs e)
{
}
無論身在何處的應用程序出現錯誤,斷點在這個方法上會受到打擊。從這裏你可以看到在快速監視窗口下面的表達式的值,你就會知道究竟是例外的發生
((System.Web.HttpApplication)(sender)).Context.AllErrors
這種方法將幫助,無論身在何處的例外發生的原因您Web應用程序。
這個問題表明正在使用控制器的OnException處理程序,所以這不會回答這個問題。 – 2014-04-15 14:52:40
由於Charlino暗示,該值可從ExceptionContext參數:
protected override void OnException(ExceptionContext filterContext)
{
var controllerName = filterContext.RouteData.Values["controller"];
var actionName = filterContext.RouteData.Values["action"];
// ...
base.OnException(filterContext);
}
- 1. MVC控制器操作導致404未找到錯誤
- 2. 無法找到控制器的操作
- 3. 提出錯誤的控制器操作
- 4. EmberJS:在(生成的foo.index控制器)中找不到的操作
- 5. 未找到MVC控制器操作(404)
- 6. 未找到控制器操作
- 7. OmniAuth操作控制器錯誤
- 8. System.DirectoryServices.DirectoryServicesCOMException:發生操作錯誤。
- 9. AJAX發佈到CakePHP控制器操作
- 10. 轉發請求到控制器操作
- 11. 如何找到控制器操作的絕對路徑?
- 12. 操作映射在控制器中觸發錯誤的方法
- 13. 如何測試控制器操作的簡單錯誤
- 14. 如何從默認控制器操作重定向到我生成的控制器操作?
- 15. 在生產服務器上找不到cakephp控制器錯誤
- 16. 如何在視圖中找到控制器和操作名稱?
- 17. RSpec在控制器中的每個動作都發生錯誤?
- 18. 查找破壞的控制器操作
- 19. 控制器中找不到錯誤「回覆」操作,但它存在於文件
- 20. 在Zend中生成控制器/操作
- 21. 控制器操作
- 22. 如何從控制器操作中調用另一個控制器操作?
- 23. 你如何找出你所在的控制器和操作?
- 24. 發生錯誤時執行操作RxJava
- 25. 操作錯誤發生枚舉DirectoryEntry組
- 26. 轉到控制器顯示「無法找到匹配的控制器」。錯誤
- 27. 發佈或獲取控制器操作
- 28. CakePHP控制器操作未觸發
- 29. MVC控制器操作和ModelState.IsValid發生了什麼
- 30. 這會發生什麼控制器/操作?
是否ExceptionContext不包含你想要的數據? – Charlino 2010-05-05 06:16:31