So ändern Sie die Standardroute in ASP.net Web API

8

Ich arbeite an ASP.net Web API. Ich versuche, die Standardroute für mein Projekt in der Datei global.asax wie,

zu setzen %Vor%

Aber ich fand kein Format ähnlich asp.net mvc Routenmodell wie

%Vor%

Er leitet mich immer zur Startseite (HomeController) um. Bitte führe mich.

    
Karthik Bammidi 23.06.2012, 19:06
quelle

6 Antworten

8

Überprüfen Sie Ihre RouteConfig -Klasse in Ihrem App_Start -Ordner. Sie sollten die Standardroute sehen, unter der Sie ändern können.

%Vor%

BEARBEITEN

Nach dem Lesen Ihrer Kommentare denke ich, dass das Problem nicht bei Ihren Routen liegt. Ich bin mir nicht sicher, warum Sie wollen , aber Sie müssen nur die Start-URL für Ihr Projekt angeben. Klicken Sie mit der rechten Maustaste auf Ihr Webprojekt - klicken Sie auf Eigenschaften - klicken Sie auf die Registerkarte Web . Wählen Sie unter Aktion starten die Option URL starten und geben Sie http://localhost:45678/api/Products in das Feld ein. Speichern Sie Ihr Projekt und führen Sie es erneut aus. Es sollte am neuen Ort beginnen.

    
Kevin Aenmey 23.06.2012 19:47
quelle
4

Das Problem könnte der häufige Fehler sein, in den fast viele Leute geraten.

Fakt ist hier, dass alle Routen unter System.Web.Routing.RouteTable.Routes collection gesammelt werden, unabhängig vom verwendeten Framework. Wenn Sie also die ASP.NET MVC-Standardroute vor die ASP.NET-Web-API-Route stellen, wird die ASP.NET-Web-API-Route nie gescannt, da die MVC-Route eine Übereinstimmung ergibt.

Ich gehe davon aus, dass dies der Fall ist, indem Sie sich ansehen, was Sie bisher zur Verfügung gestellt haben. Wenn das nicht der Fall ist, laden Sie die vollständige Lösung irgendwo hin und die Leute können sich genau anschauen.

    
tugberk 23.06.2012 21:54
quelle
1

Eigentlich, wenn wir in der Lage sind, die Standardroute in den Eigenschaften- & gt; web- & gt; Startort zu setzen. Was sind dann Routentabellen, benutzerdefinierte Routen, RegisterRoutes in der Datei global.asax? Ich habe es so versucht

zuerst scheint es so,

%Vor%

Nun möchte ich localhost:xxxx/api/products als Standardroute für meine Web-API machen,

%Vor%

Aber die Ergebnisse von keiner Verwendung.

    
Karthik Bammidi 26.06.2012 00:08
quelle
0

[EDIT: Meine Antwort ist die gleiche wie Kevins]

Sagen Sie, dass wenn Sie das Projekt von Visual Studio aus ausführen, ein Browser die Projekthomepage öffnet?

Die Web-API-Projektvorlage enthält einen MVC-Controller und einen Web-API-Controller.

Der URI "http: // localhost: xxxx /" geht an den MVC-Controller, während "http: // localhost: xxx / api / products" an den API-Controller geht.

Wenn Sie das Projekt in Visual Studio ausführen, wird es standardmäßig zu "http: // localhost: xxxx" navigieren. Im normalen Betrieb würde ein Client den gewünschten URI anfordern.

Sie können die Visual Studio-Einstellungen unter Projekteigenschaften / Web / Start-Aktion ändern.

    
Mike Wasson 24.06.2012 18:06
quelle
0

Ich denke, du hast um die Lösung getanzt, aber nur knapp verfehlt. Versuchen Sie Folgendes:

  1. Stellen Sie sicher, dass Sie GlobalConfiguration.Configure (WebApiConfig.Register) aufrufen; in Ihrem Global.asax.cs.

  2. In WebApiConfig.Register() Legen Sie die Standardroute wie folgt fest:

    routes.MapHttpRoute (Name: "DefaultApi", routeTemplate: "api / {Controller} / {id}", Standard: new {controller="Produkte", id = RouteParameter.Optional});

  3. Stellen Sie in Ihren Webprojekteinstellungen sicher, dass die Eigenschaft "Url starten" wie folgt eingestellt ist:

    localhost: 45678

Viel Glück.

    
ComeIn 28.05.2017 23:45
quelle
0

Das Neustarten von VS mit Administratorrechten hat dieses Problem für mich behoben. Umweltinfo:  - Betriebssystem: Windows 10 (64 Bit)  - Visual Studio: 2017.

    
krishna kanth 21.11.2017 10:57
quelle