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, и все работает нормально.

Есть идеи, что я делаю неправильно, когда вызываю это динамически?

0 ответов

Другие вопросы по тегам