2012-09-17 6 views
18

Ho appena installato Visual Studio 2012 e ho avviato il controllo di MVC 4 e Web Api. Ho creato una nuova app MVC 4 con Web API. Sulla base di alcuni esempi e tutorial ho iniziato la configurazione miei percorsi con:System.Web.Routing.RouteCollection non contiene una definizione per "MapHttpRoute" - VS 2012, API Web

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

Tuttavia, che si traduce in un errore che RouteCollection non contiene una definizione per MapHttpRoute. Mi mancano alcune DLL installate? Per quanto ho potuto vedere, ho installato tutte le DLL e la versione corrette.

risposta

28

Ho risolto con l'aggiunta di un riferimento alla System.Web.Http in RouteConfig.cs

+0

ho dovuto aggiungere questo riferimento. ma hai ancora un errore, per favore aiutaci a recensire [qui] (http://stackoverflow.com/questions/13908970/assembly-reference-missing-when-migration-asp-net-mvc4-from-beta-to-4) –

+2

@ Joe.wang, hai aggiunto utilizzando System.Web.Http in RouteConfig.cs? – sTodorov

+0

OMG ... doh! ... Necessita 'di usare System.Web.Http' –

25

Prova riferimento: System.Web.Http e System.Web.Http.WebHost.dll

quindi aggiungere un utilizzando statement for namespace: System.Web.Http

Nota: Potrebbe anche darsi che il tuo intellisense stia agendo. In tal caso basta andare avanti e digitare il codice manualmente e compilare.

Speranza che aiuta

+6

L'aggiunta di System.Web.Http.WebHost.dll ha risolto il problema. – Scottie

+0

Intellisense stava agendo per me. – sparebytes

+0

Per avere System.Web.Http disponibile nell'elenco dei riferimenti, ho prima bisogno di applicare il pacchetto "Microsoft.AspNet.WebApi.Core" al mio progetto tramite il gestore pacchetti NuGet. – sonyisda1

4

Solo l'aggiunta utilizzando System.Web.Mvc; Ha risolto il problema

+0

Questo era il problema per me. Ho avuto una lista di metodi come MapHttpRoute e MapOwinRoute ma volevo solo MapRoute, che era assente. Grazie! – VictorySaber

Problemi correlati