Ho risposto alla mia domanda, che è molto simile a questo.
Sarà inoltre necessario il http method
(cioè GET, POST) per ottenere il risultato corretto, oltre a nomi di azione e di controller.
Questo è il pezzo di codice che risolve il problema:
var controllerFactory = ControllerBuilder.Current
.GetControllerFactory();
var controllerContext = @this.ControllerContext;
var otherController = (ControllerBase)controllerFactory
.CreateController(
new RequestContext(controllerContext.HttpContext, new RouteData()),
controllerName);
var controllerDescriptor = new ReflectedControllerDescriptor(
otherController.GetType());
var controllerContext2 = new ControllerContext(
new MockHttpContextWrapper(
controllerContext.HttpContext.ApplicationInstance.Context,
method),
new RouteData(),
otherController);
var actionDescriptor = controllerDescriptor
.FindAction(controllerContext2, actionName);
fonte
2012-10-24 08:01:20
Grazie per la risposta, ma come ho già detto nella mia interrogazione, non sto cercando di controllare l'ActionDescriptor dell'azione attualmente in esecuzione. Verificherò un metodo di estensione AjaxHelper, in particolare un sovraccarico aggiuntivo di Ajax.BeginForm(), e voglio essere in grado di verificare se il nome dell'azione specificato in BeginForm() ha un attributo specifico. – dev99
Controlla la mia risposta di modifica. – RredCat