Фильтры результатов действий выполняться после всех остальных фильтров. Такие фильтры могут реализовывать сразу четыре интерфейса IResultFilter
, IAsyncResultFilter
, IAlwaysRunResultFilter
или IAsyncAlwaysRunResultFilter
. Фильтры результатов, реализующие интерфейсы IResultFilter
или IAsyncResultFilter
выполняются только тогда, когда выполнение метода завершилось успешно. Также, эти фильтры не вызываются, если фильтры исключений обрабатывают исключение, но не устанавливают свойство Exception = null
. При этом, фильтры, реализующие IAlwaysRunResultFilter
или IAsyncAlwaysRunResultFilter
включают результаты действия фильтров исключений. Как правило, фильтры результатов действия применяются в тех случаях, когда необходимо выполнить какую-либо постобработку результата метода.
Фильтры в ASP.NET Core MVC
Фильтры в ASP.NET Core MVC. Фильтры исключений
Фильтры исключений позволяют обрабатывать не обработанные исключения. Для создания фильтра исключений необходимо реализовать один из двух интерфейсов — IExceptionFilter
или IAsyncExceptionFilter
. Рассмотрим работу с фильтрами исключений в приложении ASP.NET Core MVC.
Фильтры в ASP.NET Core MVC. Фильтры действий
Фильтры действий выполняются после фильтров авторизации и фильтров ресурсов , а также, после привязки модели. Для создания такого фильтра нам необходимо реализовать один из интерфейсов — IActionFilter
или IActionFilterAsync
. Такие фильтры удобно использовать для анализа привязки модели, для сокращения исходного кода контроллера, а также для модификации входных данных методов контроллера.
Фильтры в ASP.NET Core MVC. Фильтры ресурсов
Фильтры ресурсов реализуют один из двух интерфейсов — IResourceFilter
или IAsyncResourceFilter
. Эти фильтры охватывают большую часть конвейера фильтров так как до фильтров этого типа выполняются тольно фильтры авторизации. Фильтры ресурсов полезны для сокращенного выполнения большей части конвейера. Например, фильтр кэширования может предотвратить выполнение действия контроллера, если в кэше обнаружено необходимое значение. Второе, не менее популярное использование фильтра ресурсов — добавление или анализ заголовков.
Фильтры в ASP.NET Core MVC. Передача параметров и зависимостей в фильтры
Как и любые классы .NET, фильтры могут принимать различное количество параметров, которые могут использоваться в работе фильтра. Кроме этого, в фильтры могут передаваться различные зависимости, необходимые для работы фильтра.
Фильтры в ASP.NET Core MVC. Область действия и очередность выполнения фильтров
В ASP.NET Core MVC фильтры могу иметь три различных области действия: метод контроллера, контроллер и глобальная область действия. Также, работа фильтров в конвейере осуществляется в строго очередности.
Фильтры в ASP.NET Core MVC. Введение
Фильтры в ASP.NET Core MVC позволяют выполнять код до или после определенных этапов обработки запроса. Обычно, фильтры в ASP.NET Core MVC реализуются как атрибутов для классов и методов. Для чего нужны фильтры в ASP.NET Core MVC? Их использование в проектах самое широкое — от авторизации пользователя в системе до кэширования ответов и предотвращения дублирования кода. В этой части мы рассмотрим вопросы связанные с использованием различных фильтров в ASP.NET Core MVC