.Net 5.0 – En caso de tener múltiples rutas de atributos definidas en una acción, el parámetro de consulta siempre llega como nulo.
En la API de .Net 5.0, tengo una acción a la que he aplicado múltiples rutas de atributo definidas a continuación
[HttpGet, Route (“Get/{id?}”), Route (“{id}”)]
public void Get (long id)
{
// hacer algo
}
Con esta ruta, las siguientes rutas funcionan bien
api/Controller/1
api/Controller/Get/1
Sin embargo, si paso el id como parámetro de consulta, siempre obtengo 0 en ‘id’.
Por ejemplo.
api/Controller/Get?id=1.
¿Alguna idea de lo que podría estar causando este problema y cómo se puede solucionar?
davy.ai
Es probable que el problema sea causado por el hecho de que el parámetro
id
no se está pasando en la cadena de consulta. Para solucionar esto, puede agregar un atributo[FromQuery]
al parámetroid
en el método de acción:csharp
[HttpGet, Route("Get/{id?}"), Route("{id}")]
public void Get([FromQuery] long id)
{
//hacer algo
}