Ho un HttpModule e ho bisogno di sapere quale azione è in esecuzione. E ho bisogno di ottenere MethodInfo dal metodo, il nome dell'azione non è sufficiente, ho bisogno del vero metodo dal tipo.Ottenere l'esecuzione di azione in HttpModule
so come ottenere il controllo e l'azione:
string controllerName = ...RouteData.Values["controller"].ToString();
string actionName = ...RouteData.Values["action"].ToString();
che voglio fare:
controllerType.GetMethod(actionName)
Questa volontà ovviamente comportare AmbiguousMatchException ...
Quale firma è esecuzione? È possibile sapere?
Quale versione di .NET stai utilizzando? Nella versione 4.0 e successive, il routing è incorporato in ASP.NET (non solo MVC), quindi nel modulo è possibile utilizzare HttpContext.Current.Request.RequestContext.RouteData e ottenere il valore dell'azione da lì. Per capire quale metodo è in esecuzione, dovresti utilizzare il resto dei dati del percorso, ad esempio tutto ciò che non è il controller, l'azione o l'area, poiché questi corrisponderebbero ai parametri del tuo metodo di azione. –
Sto usando HttpContext.Current.Request.RequestContext.RouteData. Ma non riesco a ottenere il sovraccarico corretto per l'azione? Sai come farlo? –
Vedere la mia risposta suggerita. –