Filter attribute in mvc
In ASP.NET Core MVC, filters (like ActionFilterAttribute) let you run logic before or after controller actions. They're great for cross-cutting concerns like logging, authentication, or validation.
In-Build Filters
- Authorization Filter
- Interface/Base Class - IAuthorizationFilter
- Run: Before everything
- Resource Filter
- Interface/Base Class - IResourceFilter
- Run: Before model binding
- Action Filter
- Interface/Base Class - IActionFilter / ActionFilterAttribute
- Run: Before/after action executes
- Exception Filter
- Interface/Base Class - IExceptionFilter
- Run: On unhandled exceptions
- Result Filter
- Interface/Base Class - IResultFilter
- Run: Before/after action result runs
Create a Custom Filter Attribute
Apply the Filter
- Option A: Apply to a Controller or Action
- Option B: Register Globally (applies to all controllers/actions)
- Register the Filter in DI
- Directly without using DI