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 {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

Schreibe einen Kommentar