Я работал в MVC на .Net 4, и мои фильтры действий были переопределены в классе контроллера.Таким образом, у меня может быть несколько контроллеров, каждый с уникальным OnActionExecuting
методом.
Сейчас я работаю над Dotnet Core 2.1, и все немного по-другому, поэтому я не могу заставить работать одну и ту же методологию.У меня есть контроллер для API, который наследует ControllerBase
, а затем еще один контроллер для обслуживания страниц, который наследует Controller
.Я создал свой класс фильтра действий, который наследуется от ActionFilterAttribute
.
. Затем я зарегистрировал свой фильтр действий, используя следующую строку:
services.AddMvc(config => { config.Filters.Add(typeof(MyActionFilter)); })
Проблема заключается в том, что фильтр теперь применяется к APIконтроллер, а также контроллер страниц.Есть ли способ, которым фильтр действий может быть применен только к определенным контроллерам?
Я использовал эту страницу как ссылку для моей начальной реализации фильтра действий.
Я знаю, чтовнутри метода OnActionExecuting
я могу использовать context.Controller.GetType()
, чтобы сравнить его с типами моих отдельных контроллеров, но я бы предпочел избежать этого и вместо этого указать, какие контроллеры должны использовать какие фильтры действий.
Спасибо завперед.