2012-09-17 18 views
18

Acabo de instalar Visual Studio 2012 y comencé a probar MVC 4 y Web Api. He creado una nueva aplicación MVC 4 con API web. Sobre la base de algunos ejemplos y tutoriales que empecé a configurar mis rutas con:System.Web.Routing.RouteCollection no contiene una definición para "MapHttpRoute" - VS 2012, API web

routes.MapHttpRoute(
       name: "Controller only", 
       routeTemplate: "api/{controller}" 
      ); 

Sin embargo, esto da lugar a un error que RouteCollection no contiene una definición para MapHttpRoute. ¿Me faltan algunas DLL instaladas? Por lo que pude ver, tengo todas las DLL correctas y la versión instalada.

Respuesta

28

lo he resuelto mediante la adición de una referencia a System.Web.Http en RouteConfig.cs

+0

tuve añadir esta referencia. pero todavía tiene error, por favor ayuda a revisar [aquí] (http://stackoverflow.com/questions/13908970/assembly-reference-missing-when-migration-asp-net-mvc4-from-beta-to-4) –

+2

@ Joe.wang, ¿ha agregado usando System.Web.Http en RouteConfig.cs? – sTodorov

+0

OMG ... doh! ... Necesita 'using System.Web.Http' –

25

Trate de referencia: System.Web.Http y System.Web.Http.WebHost.dll

continuación, agregue un uso declaración para el espacio de nombres: System.Web.Http

Nota: También podría ser que su intellisense está actuando. En ese caso, solo siga adelante y escriba su código de forma manual y compilación.

Espero que ayude

+6

Agregar System.Web.Http.WebHost.dll solucionó mi problema. – Scottie

+0

Intellisense estaba actuando para mí. – sparebytes

+0

Para tener System.Web.Http disponible en la lista de referencias, primero tuve que aplicar el paquete 'Microsoft.AspNet.WebApi.Core' a mi proyecto a través del administrador de paquetes NuGet. – sonyisda1

4

Simplemente añadiendo usando System.Web.Mvc; resuelto mi problema

+0

Este fue el problema para mí. Tenía una lista de métodos como MapHttpRoute y MapOwinRoute, pero solo quería MapRoute, que estaba ausente. ¡Gracias! – VictorySaber

Cuestiones relacionadas