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.
Überprüfen Sie Ihre RouteConfig
-Klasse in Ihrem App_Start
-Ordner. Sie sollten die Standardroute sehen, unter der Sie ändern können.
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.
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.
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,
Aber die Ergebnisse von keiner Verwendung.
[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.
Ich denke, du hast um die Lösung getanzt, aber nur knapp verfehlt. Versuchen Sie Folgendes:
Stellen Sie sicher, dass Sie GlobalConfiguration.Configure (WebApiConfig.Register) aufrufen; in Ihrem Global.asax.cs.
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});
Stellen Sie in Ihren Webprojekteinstellungen sicher, dass die Eigenschaft "Url starten" wie folgt eingestellt ist:
localhost: 45678
Viel Glück.
Das Neustarten von VS mit Administratorrechten hat dieses Problem für mich behoben. Umweltinfo: - Betriebssystem: Windows 10 (64 Bit) - Visual Studio: 2017.
Tags und Links asp.net-mvc asp.net-web-api asp.net