view raw
Hot Licks Hot Licks - 7 months ago 121
ASP.NET (C#) Question

"The type or namespace name 'Route' could not be found" using "attribute routing"

Just trying to splice some code from one working project to another. The "from" project uses "attribute routing" where you embed

directives in the Web API controller modules to indicate what HTTP message should route to what service routine.

Works fine in the "from" project, but in the "to" project I get the build error "The type or namespace name 'Route' could not be found (are you missing a using directive or an assembly reference?)"

I've tried copying essentially all of the
statements from the "from" project to the "to" project, but that has no apparent effect. None of the MS documentation suggests that a NuGet package is required (or even a
statement). Both projects are supposedly ASP.NET MVC 4.

(And, yes, I updated WebApiConfig.cs with the

Any ideas??


Attribute Routing is native in ASP.NET MVC 5, or later, and ASP.NET Web API 2.

However, there is a project that allows to use attribute routing it in previous version of ASP.NET MVC,and Web API. You should read this page carefully.

As you can see in the linked page, this project is available as a NuGet package, so that it can be installed like this:

  • Install-Package AttributeRouting (for MVC)
  • Install-Package AttributeRouting.WebApi (for Web API)
  • Install-Package AttributeRouting.WebApi.Hosted (for self-hosted Web API)

Please, be aware that the namespaces of attribute routing are different for each version and for MVC and Web API. So, you must browse the .dll included by the installed package to find out the right namespace, and change your using accordingly. For example:

using AttributeRouting.Web.Http;