es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

.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?

Tags:  , , ,

Answer

  1. Avatar for 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ámetro id en el método de acción:

    csharp
    [HttpGet, Route("Get/{id?}"), Route("{id}")]
    public void Get([FromQuery] long id)
    {
    //hacer algo
    }

Comments are closed.