回答
检查异常的调用堆栈。
例如:
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. EmberJS:在(生成的foo.index控制器)中找不到的操作
- 3. 未找到控制器操作
- 4. 未找到MVC控制器操作(404)
- 5. OmniAuth操作控制器错误
- 6. AJAX发布到CakePHP控制器操作
- 7. 操作映射在控制器中触发错误的方法
- 8. 如何找到控制器操作的绝对路径?
- 9. 如何测试控制器操作的简单错误
- 10. 如何从默认控制器操作重定向到我生成的控制器操作?
- 11. 如何在视图中找到控制器和操作名称?
- 12. 查找破坏的控制器操作
- 13. 如何从控制器操作中调用另一个控制器操作?
- 14. 你如何找出你所在的控制器和操作?
- 15. 操作错误发生枚举DirectoryEntry组
- 16. 转到控制器显示“无法找到匹配的控制器”。错误
- 17. CakePHP控制器操作未触发
- 18. 发布或获取控制器操作
- 19. 这会发生什么控制器/操作?
- 20. DbEntityValidationException我的控制器操作中的错误
- 21. Yii2。如何在控制器/操作json_decode()?
- 22. 为什么我的表单触发了错误的控制器操作?
- 23. 保存Web表单时未找到控制器的Rails操作
- 24. 如何从另一个控制器生成操作地址?
- 25. 如何使用ASP.NET MVC控制器操作将文件发送到浏览器?
- 26. 控制器操作的Ajax帖子在Chrome控制台中出现“500(内部服务器错误)”错误
- 27. 如何修复带有条件流的操作控制器错误?
- 28. 发布复杂的数据到MVC控制器/操作
- 29. 获取当前控制器和发送到路由的操作
- 30. 将操作发送到EmberJS中的应用程序控制器
是否ExceptionContext不包含你想要的数据? – Charlino 2010-05-05 06:16:31