/ / ASP.NET Core Route no funciona - asp.net, asp.net-core-mvc

La ruta principal de ASP.NET no funciona - asp.net, asp.net-core-mvc

Los enrutadores se configuran de esta manera:

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

El controlador I action que estoy intentando solicitar tiene este aspecto: // OBTENER api / values ​​/ 5

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

Cuando pido http://localhost:54057/api/values/get, Vuelvo "value0".

Cuando pido http://localhost:54057/api/values/get, Vuelvo "value0".

Cuando pido http://localhost:54057/api/values/get/5, Devuelvo un 404 No encontrado.

¿Mis rutas están configuradas incorrectamente o por qué el parámetro "id" no se pasa de la URL a la acción del controlador?

Respuestas

0 para la respuesta № 1

Creo que necesita especificar el controlador y no una acción. Su ruta debe definirse como:

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

La razón por la que obtenías los resultados cuando noEl parámetro que se especificó probablemente se debió a la ruta alternativa que se está llamando. Si desea saber qué ruta se invoca, eche un vistazo a este artículo sobre Depuración de ruta.