He respondido mi propia pregunta, que es muy similar a esto.
También necesitará el http method
(es GET, POST) para obtener el resultado correcto, además de los nombres de acción y el controlador.
Esta es la parte del código que resuelve su 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);
Gracias por su respuesta, pero como he mencionado en mi pregunta, no estoy tratando de comprobar la ActionDescriptor de la acción que se está ejecutando. Comprobaré un método de extensión AjaxHelper, específicamente una sobrecarga adicional de Ajax.BeginForm(), y quiero poder verificar si el nombre de acción especificado en BeginForm() tiene un atributo específico. – dev99
Verifique mi respuesta de edición. – RredCat