ActionFilterAttribute вызывается для всех действий - PullRequest
4 голосов
/ 03 января 2012

Возможно, я неправильно понял смысл атрибута ActionFilter, но теперь у меня есть следующее:

public class MyCustomAttribute : ActionFilterAttribute
{
  public override void OnActionExecuting(ActionExecutingContext filterContext)
  {
    //do something useful here
  }
}

Тогда в моем контроллере Home есть следующие методы действия:

public class HomeController : Controller
{
  public ActionResult Index()
  {
    return View();
  }

  [MyCustom]
  public ActionResult Test()
  {
    return View();
  }
}

Теперь я ожидаю, что OnActionExecuting будет запущен при попытке доступа к /Home/Test, но не при попытке доступа к /Home/Index.

Однако он запускается для обоих методов действия. Внутри OnActionExecuting я также проверил, что на самом деле вызывается действие Index.

Есть ли возможность вызова OnActionExecuting только при вызове метода действия, отмеченного атрибутом?

1 Ответ

7 голосов
/ 03 января 2012

Проверьте, присутствует ли MyCustomAttribute в коллекции GlobalFilters в Global.asax.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...