ASP.NET MVC 5 introduced Attribute Routing. It allows you to apply a route directly on the controller class. Before we use the Attribute Routing, let’s relook how the convention based routing works.
We create a route as follows:
Index action of Home controller can be accessed on two different URLs. Either using the base URL (default value is set) or using baseurl/Home/Index as shown below:
In convention based routing action is accessed using the baseurl/controllername/actionname. Using the Attribute Routing this behaviour can be overridden. To use attribute routing you need to enable it in RouteConfig. To enable it, in the RoutConfig.cs call routes.MapMvcRouteAttribute() method.
Once it is enabled you can apply attribute routing on action using Route attribute and passing a value in this.
Now Index action can be access on the URL: baseurl/Test
You can also pass parameters in the attribute route. Parameters name and variables in route value must be the same.
Index action can be access with parameter values as shown below- I am passing 40 as value of age and steve as value of name.
You may want to use the attribute routing in your project as per the requirement. Keep in mind that attribute routing and the convention based routing can be used together.