ActionFilterAttribute не срабатывает при динамическом вызове метода действия с использованием ControllerContext
У меня есть требование, где мне нужно инициализировать и вызывать метод действия на контроллере динамически. Я использую внедрение зависимостей, чтобы получить экземпляр контроллера, а затем создаю контроллер контекста, как показано ниже. Когда я следую этому подходу, "OnActionExecuting" в ACustomAttribute не срабатывает вообще.
var aController = ServiceLocator.Current.Resolve<AController>();
aController.ControllerContext = new ControllerContext(this.Request.RequestContext, aController);
aController.PostActionMethod();
//Action method has an attribute.
[ACustom]
public ActionResult PostActionMethod() {}
//Custom attribute looks like this
public sealed class ACustomAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
////Doesn't trigger...
}
}
С другой стороны, если я вызываю PostActionMethod непосредственно из клиентской части ajax, то запускается ACustomAttribute, и все работает нормально.
Есть идеи, что я делаю неправильно, когда вызываю это динамически?