Данное руководство устарело. Актуальное руководство: Руководство по ASP.NET Core
Мы посмотрели на различные виды фильтров. Как вы видели, мы можем применить фильтры как к отдельным действиям, так и ко всему контроллеру - то есть ко всем его действиям. Однако если мы хотим применить фильтр ко всем контроллерам, а контроллеров у нас много? В данном случае в mvc реализована функциональность глобальных фильтров. Эти фильтры применяются ко всем действиям всех контроллеров.
Откроем файл FilterConfig.cs, который находится в папке App_Start. В этом файле определен класс FilterConfig,
который в методе RegistreGlobalFilters осуществляет регистрацию глобальных фильтров в коллекцию filters. Эта
коллекция представляет собой объект GlobalFilterCollection
, который передается в качестве параметра при вызове метода в файле
Global.asax.
Итак, мы можем зарегистрировать глобальные фильтры так:
public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); filters.Add(new MyExceptionAttribute()); filters.Add(new MyResultAttribute()); } }