.NET Q & A


What is attribute routing in ASP.NET MVC?

Attribute routing is a feature in ASP.NET MVC that allows developers to define custom URL patterns and route configurations directly within controller classes and action methods using attributes. Unlike convention-based routing, where routes are defined in a centralized configuration file, attribute routing provides a more concise and declarative way to define routes at the controller and action level.


Declarative Routing:

Attribute routing enables developers to define URL patterns and route templates using attributes applied directly to controller classes and action methods. This allows for a more declarative and intuitive way of defining routes, making it easier to understand and manage the routing configuration within the context of individual controllers and actions.


Controller-level Routing:

With attribute routing, developers can define route prefixes at the controller level using the [Route] attribute applied to the controller class. This allows developers to specify a common URL prefix that applies to all action methods within the controller, simplifying the definition of hierarchical route structures.


Action-level Routing:

In addition to controller-level routing, attribute routing allows developers to define custom URL patterns for individual action methods using the [Route] attribute applied to specific action methods. This provides fine-grained control over the routing configuration for each action, enabling developers to define unique URL patterns and route constraints as needed.


Parameterized Routing:

Attribute routing supports parameterized route templates, allowing developers to define route parameters directly within the URL pattern using curly braces ({}) syntax. Route parameters can capture values from the incoming request URL and pass them as method parameters to the corresponding action method, enabling dynamic and data-driven routing scenarios.


Route Constraints and Defaults:

Attribute routing supports route constraints and defaults, allowing developers to apply constraints to route parameters based on data types, regular expressions, or custom validation logic. Route defaults allow developers to specify default values for route parameters if no value is provided in the URL.


Priority and Precedence:

Attribute routes take precedence over convention-based routes defined in the global route configuration. This means that attribute routes defined at the controller or action level will be evaluated first when processing incoming requests, providing flexibility and control over route resolution and handling.


Attribute routing in ASP.NET MVC provides a flexible and declarative way to define custom URL patterns and route configurations directly within controller classes and action methods. It enables developers to create clean, expressive, and SEO-friendly URLs while maintaining control over routing behavior at a granular level.


Previously at
Flag Argentina
time icon
Experienced Software Developer and .NET Specialist having 13 years of experience. Skilled in SharePoint, Dynamics CRM, and freelance consulting.