确定控制器的OnException中的结果类型

Chr*_*ger 8 asp.net-mvc controller onexception

我正在开发一个MVC.NET 2.0项目,我试图在控制器的OnException方法中放入一些特殊的错误处理逻辑.基本上我希望能够确定引发未处理异常的控制器方法的结果类型,以便我可以以某种格式返回错误数据,具体取决于类型(JsonResult的json和ActionResult的html).有人能指出我确定这种类型的方法吗?我非常感谢任何帮助.

提前致谢

uvi*_*ita 7

假设您没有更改默认路由:

protected override void OnException(ExceptionContext filterContext)
{
    var action = filterContext.RouteData.Values["action"].ToString();
    var type = filterContext.Controller.GetType();
    var method = type.GetMethod(action);
    var returnType = method.ReturnType;
    //...do whatever here...
}
Run Code Online (Sandbox Code Playgroud)

祝好运!

  • @Jim你可以在那种情况下使用type.GetMethods().Where(m => m.Name.Equals(action))并通过知道当前请求中使用的动词并查看属性来获得正确的方法每种方法. (3认同)