-
Notifications
You must be signed in to change notification settings - Fork 1
Attribute Routing in ASP.NET MVC 5
Able Alias edited this page Jul 2, 2018
·
2 revisions
MVC 5 supports a new type of routing along with traditional routing, called attribute routing
. As the name implies, attribute routing uses attributes to define routes. Attribute routing gives you more control over the URIs in your web application. The earlier style of routing, called convention-based routing
, is still fully supported. In fact, you can combine both techniques in the same project.
To enable attribute routing, call MapMvcAttributeRoutes during configuration.
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”);
routes.MapMvcAttributeRoutes();
}
}
You can also combine attribute routing with convention-based routing.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”);
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: “Default”,
url: “{controller}/{action}/{id}”,
defaults: new { controller = “Home”, action = “Index”, id = UrlParameter.Optional }
);
}
When the route definitions are co-located with the actions, within the same source file rather than being declared on an external configuration class, it can make it easier to reason about the mapping between URIs and actions. for example simple attribute:
[Route(“{productId:int}/{productTitle}”)]
public ActionResult Show(int productId) { … }