我有一個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