ASP.NET Kern der Route funktioniert nicht
Sind die Router so konfiguriert:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "api",
template: "api/{action}/{id?}");
});
app.UseMvc(routes =>
{
routes.MapRoute(
name: "spa-fallback",
template: "{*url}",
defaults: new { controller = "Home", action = "Index"});
});
Den controller habe ich Aktion, die ich versuche zu verlangen, die wie folgt aussieht:
//GET api/Werte/5
[HttpGet("{id}")]
public string Get(int id)
{
return "value" + id;
}
Wenn ich Anfrage http://localhost:54057/api/values/get, bekomme ich zurück, "value0".
Wenn ich Anfrage http://localhost:54057/api/values/get, bekomme ich zurück, "value0".
Wenn ich Anfrage http://localhost:54057/api/values/get/5, bekomme ich wieder eine 404-Nicht Gefunden.
Sind meine Routen nicht korrekt konfiguriert, oder warum ist das so, dass die "id" - parameter nicht übergeben, von URL auf controller-action?
ASP.NET Routing-Debugger FTW!!!
Versuchen
In Ihren Beispielen, die Sie brauchen nicht zu zählen "/get" am Ende der URL. Die URL sollte nur "/api/Werte/5", und falls der request-Typ "get" - es werden Treffer, die Aktion ordentlich (mit der änderung vorgeschlagen, in einer Antwort weiter unten).
Versuchen
{id:int}
. Und dann in der Methode return "value " + id.ToString();
In Ihren Beispielen, die Sie brauchen nicht zu zählen "/get" am Ende der URL. Die URL sollte nur "/api/Werte/5", und falls der request-Typ "get" - es werden Treffer, die Aktion ordentlich (mit der änderung vorgeschlagen, in einer Antwort weiter unten).
InformationsquelleAutor blgrnboy | 2016-09-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, Sie brauchen, um anzugeben, controller, und nicht eine Aktion. Ihre route sollte wie folgt definiert werden:
Der Grund, warum Sie immer waren die Ergebnisse, wenn kein parameter angegeben wurde, wurde wahrscheinlich aufgrund der fallback-route genannt wird. Wenn Sie wissen möchten, welche route aufgerufen wird, haben Sie einen Blick auf diese Artikel auf Route Debugging.
Sie können MapRoute() in der 1. UseMvc().
InformationsquelleAutor Husein Roncevic
Definieren Sie die vollständige route, SPA überschreibt die Standard-MVC routing
InformationsquelleAutor Mark Macneil Bikeio