Asp.net Mvc: вызывать логику на каждом контроллере / действии - PullRequest
0 голосов
/ 29 августа 2009

У меня есть логика, которую я хочу выполнять каждый раз, когда действие возвращает представление. Логика должна знать название действия и контроллер. В данный момент я работаю с фильтром для каждого контроллера / действия, но иногда я хочу, чтобы все действия, которые возвращают представление, использовали эту логику. Поэтому добавление фильтров везде кажется дополнительной работой, которой я могу избежать.

Ответы [ 2 ]

2 голосов
/ 29 августа 2009

Можно переопределить метод OnActionExecuting или OnActionExecuted , чтобы обеспечить общее поведение для всех действий в контроллере.Если вы хотите, чтобы он применялся к нескольким контроллерам, вы можете создать базовый класс контроллеров с этим переопределением, и эти контроллеры, которым необходимо это поведение, наследуются от базового контроллера.

1 голос
/ 29 августа 2009

Чтобы узнать действие и имя контроллера из фильтра:

String ActionName = filterContext.ActionMethod.Name;
String ControllerName = filterContext.Controller.ToString();

Чтобы применить фильтр к всем действиям, определите OnActionExecuting для базового класса Controller, а затем сделайте его подклассом.

Я задал конкретный вопрос о том, как фильтровать только те действия, которые возвращают представление ...

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