2014-12-03 16 views
5

Ich möchte Attribut-Routing für Web-API aktivieren, wie es aussieht, wird es Routing einfacher zu definieren. Das Beispiel hier: http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2 zeigt, wie es in der WebApiConfig.cs Datei ausgeführt wird:Aktivieren Sie Web-API-Attribut-Routing in global.asax

using System.Web.Http; 

namespace WebApplication 
{ 
    public static class WebApiConfig 
    { 
     public static void Register(HttpConfiguration config) 
     { 
      // Web API routes 
      config.MapHttpAttributeRoutes(); 

      // Other Web API configuration not shown. 
     } 
    } 
} 

jedoch mein Projekt ist ein altes Web-Formulare Projekt begann ursprünglich in .Net 2.0 (es ist jetzt 4,5 nach mehreren Upgrades über die Jahre). Ich habe nicht eine WebApiConfig.cs Datei und stattdessen meine aktuellen Routen verwenden direkt in der global.asax Application_Start Methode definiert:

RouteTable.Routes.MapHttpRoute(...) 

Kann jemand, den besten Weg erklärt Attribut based Routing in dieser Situation aktivieren? Danke

+0

lesen Sie den Link, den Sie unter "Hinweis: Migration von Web API 1" – Rhumborl

+0

@ rhumbborl Vielen Dank für den Vorschlag. Interessanterweise habe ich jedoch nicht die Zeile "WebApiConfig.Register (GlobalConfiguration.Configuration);" in global.asax – Kate

+0

Wow, downvotes? War das eine schlechte Frage? Kann mir jemand sagen warum? – Kate

Antwort

10

Sie können einfach GlobalConfiguration.Configuration.MapHttpAttributeRoutes(); in Ihrer Global.asax Datei tun.

GlobalConfiguration.Configuration Objekt wird in WebApiConfig Datei übergeben, so können Sie diese Klasse verwenden, alles, was Sie in Global.asax

+0

Großartig, danke dafür! – Kate

3

Sie sollten, bevor Sie Ihre Route Definitionen setzen diese 2 Zeilen konfigurieren müssen, und es wird glücklich

GlobalConfiguration.Configuration.MapHttpAttributeRoutes(); 
    GlobalConfiguration.Configuration.EnsureInitialized(); 
arbeiten

Prost