我有一个HttpModule并需要知道正在执行哪个操作。我需要从方法中获取MethodInfo,操作名称不够,我需要类型中的实际方法。在HttpModule中执行操作
我知道如何让控制器和动作:我想做
string controllerName = ...RouteData.Values["controller"].ToString();
string actionName = ...RouteData.Values["action"].ToString();
:
controllerType.GetMethod(actionName)
在AmbiguousMatchException当然结果这将...
哪个签名执行?有可能知道吗?
您使用的是什么版本的.NET?在4.0及以上版本中,路由内置于ASP.NET(不仅仅是MVC),所以在你的模块中,你可以使用HttpContext.Current.Request.RequestContext.RouteData,并从那里获取行为值。为了弄清楚什么方法正在执行,你可以使用其余的路由数据,即任何不是控制器,动作或区域的数据,因为这些数据将与你的动作方法中的参数相匹配。 – 2013-04-09 13:09:35
我正在使用HttpContext.Current.Request.RequestContext.RouteData。但是我无法获得正确的超载行为?你知道怎么做吗? – 2013-04-12 08:32:08
请参阅我的建议答案。 – 2013-04-15 19:03:44