ActionFilterAttribute не срабатывает при динамическом вызове метода действия с использованием ControllerContext - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть требование, где мне нужно динамически инициализировать и вызывать метод действия на контроллере. Я использую внедрение зависимостей, чтобы получить экземпляр контроллера, а затем создаю контроллер контекста, как показано ниже. Когда я следую этому подходу, «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, и все работает нормально.

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

...