RoutePrefix vs Route
Ich verstehe, dass RoutePrefix
hinzufügen nicht eine route in die routing-Tabelle von selbst. Auf Ihre Aktionen, die Sie brauchen, um eine Route
- Attribut deklariert. Ich habe eine harte Zeit der Suche nach einer autorisierenden blog/msdn-Seite/etwas, das erklärt, warum durch defalut RoutePrefix
hinzufügen nicht eine route in die routing-Tabelle.
Hat jemand eine maßgebliche Beitrag, der enthält, dass dies der Fall ist, und wenn ja, wird Sie lassen Sie mich wissen, wen es ist. Ich danke Ihnen sehr.
Bearbeiten
Um zu Klären, meine Frage
NICHT FUNKTIONIERT
[RoutePrefix("api/Steve")]
public class SteveController : ApiController
{
public int get(){return 1000000;}
}
Funktioniert
[RoutePrefix("api/Steve")]
public class SteveController : ApiController
{
[Route("")]
public int get(){return 1000000;}
}
Das oben beschriebene Szenario funktioniert, weil wir explizit darauf hingewiesen, dass die get
Aktion auf der SteveController
hat eine leere route. Sobald wir wissen, dass die route wird Hinzugefügt, um die RouteTable
Ersten Szenario nicht funktioniert, weil nur mit RoutePrefix
gar nichts hinzufügen, um der route-Tabelle. RoutePrefix
von selbst nicht generieren einer route.
Dies scheint zu wissen, ich möchte wissen, eine Quelle, die erklärt, warum das so ist. Vorzuziehen ist ein Angesehenes community-Mitglied ich.e Jon Skeet oder jemand in das Microsoft-team.
InformationsquelleAutor gh9 | 2016-04-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Route Präfixe sind im Zusammenhang mit Strecken, die von design im Attribut-routing.
Es ist ein gemeinsames Präfix für einen ganzen controller.
Wenn Sie Lesen Sie die release notes eingeführt wurde das feature bekommen Sie vielleicht ein besseres Verständnis für das Thema.
ASP.NET Web-API 2
Was ist Neu in ASP.NET Web API 2.1
Was ist Neu in ASP.NET Web API 2.2
Einen wirklich guten Artikel über das Thema
ASP.NET 5 Deep Dive: Routing
Zwar kein Experte auf dem Thema, hier ist mein Verständnis, wie dies funktioniert.
Mit Attribut-routing-framework untersucht die route-Attribut für die Aktionen der controller in order to create route-Einträge hinzufügen, um der route-Tabelle. So lange, wie Sie sind, mit dem Attribut-routing Sie sind dabei, die
[RouteAttribute]
. Ohne dieses Attribut wird die Aktion standardmäßig wieder auf convention-based routing. DieRoutePrefixAttribute
ist ein erweiterungspunkt erlaubt, dass Sie mehr Kontrolle darüber, wie definieren Sie Ihre Routen/Urls. Die release-notes sagen wie viel.Anders, als mein Verständnis und das Letzte Glied zur Verfügung gestellt, alles andere wurde zitiert aus MS-Dokumentation.
Aber die definition der
RoutePrefix
im Grunde schon erklärt, warum es funktioniert nur mit einem Router. Es wird verwendet, um zu speicherncommon
Präfix unter den Routen in der Steuerung.meine Frage ist nicht warum es funktioniert. Es ist ich würde gerne sehen, einige Quelle, die besagt, dass., Um mein wissen und meine googlefu es ist nur Allgemeine Informationen, die jeder hat.
InformationsquelleAutor Nkosi
Für eine maßgebliche Quelle, hier sind die Beschreibungen von MSDN (Hervorhebung von mir).
RouteAttribute
RoutePrefixAttribute
Wie Sie sehen können, ist die Beschreibung für
Route
erwähnt aussetzen der Maßnahme(N), aberRoutePrefix
nicht.InformationsquelleAutor Robert Dennis