2017-07-19 1 views
-3

Ich habe die folgende Registrierung, die in global.asax.cs in Application_Start aufgerufen wird.Wohin mit meinen Controllern für meine API-Routen?

public static void Register(HttpConfiguration config) 
{ 
    config.MapHttpAttributeRoutes(); 

    config.Routes.MapHttpRoute(
     name: "DefaultApi", 
     routeTemplate: "api/{controller}/{id}", 
     defaults: new { id = RouteParameter.Optional } 
    ); 
} 

Muss ich meine/api spezifische Controller in einem Bereich setzen oder so lange, wie ich von ApiController erben wird es nur ‚Arbeit‘? Mit Arbeit meine meine Controller werden auf die Route reagieren api/{Controller}/...

+5

Haben Sie es versucht und sehen, was passiert ist? – mason

+0

Ja, aber auch ... das ^. Tu es einfach und geh auf den Pfad. – wakers01

Antwort

-1

Lesen Sie here, um einen besseren Anhaltspunkt zu erhalten.

Routen zu einem Web Forms-Anwendung

In einer Web Forms-Anwendung hinzufügen, erstellen Sie Routen durch die Verwendung von MapPageRoute (String, String, String) -Methode der Routecollection-Klasse. Die MapPageRoute-Methode erstellt ein Route-Objekt und fügt es dem RouteCollection-Objekt hinzu. Sie geben Eigenschaften für das Route-Objekt in Parametern an, die Sie an die MapPageRoute-Methode übergeben.

Normalerweise fügen Sie Routen in einer Methode hinzu, die vom Handler für das Ereignis Application_Start in der Datei Global.asax aufgerufen wird. Dieser Ansatz stellt sicher, dass die Routen beim Start der Anwendung verfügbar sind. Sie können die Methode auch direkt aufrufen, wenn Sie die Anwendung im Unit-Test testen. Wenn Sie eine Methode direkt beim Komponententest der Anwendung aufrufen möchten, muss die Methode zum Registrieren der Routen statisch sein (in Visual Basic freigegeben) und über einen RouteCollection-Parameter verfügen.

Das folgende Beispiel zeigt Code aus einer Global.asax-Datei, die ein Route-Objekt hinzufügt, das zwei URL-Parameter namens action und categoryName definiert. URLs mit dem angegebenen Muster werden an die physische Seite Categories.aspx weitergeleitet.

protected void Application_Start(object sender, EventArgs e) 
{ 
    RegisterRoutes(RouteTable.Routes); 
} 

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.MapPageRoute("", 
     "Category/{action}/{categoryName}", 
     "~/categoriespage.aspx"); 
} 
+1

Dies beantwortet die Frage nicht. –

Verwandte Themen