What is the benefit of adding "routes.MapMvcAttributeRoutes()" to RegisterRoutes()?

asp.net-mvc-5, asp.net-web-api, asp.net-web-api-routing, attributerouting, c#

Solution

You only need this if you use attribute routing on your MVC controllers. Your WebAPI attribute routing works because of this line in WebApi.Config.cs

// Web API routes
config.MapHttpAttributeRoutes();

Problem

According to the article "What's New in ASP.NET MVC5", you must add this to your RegisterRoutes() method in order to use Attribute Routing: ``` routes.MapMvcAttributeRoutes(); ``` ...so that the method is now: ``` 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 } ); } ``` I do not have that additional/middle call, and my attribute routing has been working just dandy. So what does adding that do for me, if anything?

Original source