/ / Cesta ASP.NET Core nefunguje - asp.net, asp.net-core-mvc

ASP.NET Core Route nefunguje - asp.net, asp.net-core-mvc

Smerovače sú konfigurované takto:

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"});
});

Ovládač, o ktorý sa pokúšam požiadať, vyzerá takto: // GET api / values ​​/ 5

[HttpGet("{id}")]
public string Get(int id)
{
return "value" + id;
}

Keď žiadam http://localhost:54057/api/values/get, Dostanem späť „value0“.

Keď žiadam http://localhost:54057/api/values/get, Dostanem späť „value0“.

Keď žiadam http://localhost:54057/api/values/get/5, Dostanem späť 404 Not Found.

Sú moje trasy nesprávne nakonfigurované alebo prečo je to tak, že parameter „id“ nie je prenášaný z adresy URL do akcie kontrolóra?

odpovede:

0 pre odpoveď č. 1

Myslím, že je potrebné zadať ovládač, a nie akciu. Vaša trasa by mala byť definovaná ako:

app.UseMvc(routes =>
{
routes.MapRoute(
name: "api",
template: "api/{controller}/{id?}"); <-- Note the change here
});

app.UseMvc(routes =>
{
routes.MapRoute(
name: "spa-fallback",
template: "{*url}",
defaults: new { controller = "Home", action = "Index"});
});

Dôvod, prečo ste dostávali výsledky, keď niezadaný parameter bol pravdepodobne spôsobený volaním záložnej trasy. Ak chcete vedieť, na ktorú trasu sa odvolávate, pozrite si tento článok Ladenie trasy.