Monday, 2 May 2016

Action Filter In MVC

What are the filters:
Sometimes we would like to perform certain action before or after a particular operation, or some times we need a pre or post action behaviors from action, for achieving this functionality ASP.NET MVC provides a feature called Filters.

Types of filters:

ASP.NET MVC supports following types of filters:

  1. Action Filters
  2. Authorization Filters
  3. Result Filters
  4. Exception Filters
  5. Action Filters: 
Action filters are used to implement the logic that get executed before or after a controller action executes.

Authorization Filters:

It is used to implement authorization and authentication for action filters

Result Filters:
Result filters contains logic that gets executed before or after a view result gets executed. E.g. if you want to change view before its get render to browser.

Exception Filters:
Exception filters are used to handle error, caused by either controller action or controller action results, we can also use it for logging the exceptions.


Let's start with Action Filter in ASP.NET MVC:
Action Filters can be applied to either controller action or controller itself, with the help of action filter we can change the way, the action or controller gets executed.

MVC provides following action filters:
  • Output Cache:

    Output
    This filter caches the output of action for certain duration. E.g. below code snippet, we are decorating login action with output cache keyword, that will cache the output of login action for 20 seconds( we have given 20 seconds duration).
  • Handle Error:
    It handles the error caused by action or controller, if any exception occurs it redirects the action to custom error page. e.g: here in the below code snippet handle error attribute is decorated to login action method, it will redirect to a view called "error.cshtml" when any exception will occur by this action method.
    Handle
  • Authorize:
    It is used for filtering the authorized user to access the resource. E.g. in below code snippet we have decorated an action method with Authorize attribute.
    Authorize
  • If we will try to access this action then it will give following error:
    error
So these are the action filters, hopefully I was able to satisfy you, more will come with the next article on custom filters.