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?

有帮助吗?

解决方案

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();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top