Estoy intentando acceder a los parámetros de cadena de consulta en mi ASP.NET MVC6 aplicaciones. Pero parece que a diferencia de MVC5 y formularios web, QueryString no tiene ningún indexador y yo no puedo decir algo como:

string s = Request.QueryString["key1"] //gives error

Así, mi pregunta es – ¿cómo puedo acceder a los parámetros de cadena de consulta en MVC6?

Sorprendentemente Request.Forms colección funciona como se esperaba (como en MVC5 o formularios web).

Gracias.

  • ¿qué error tienes?
  • Que no se supone que el uso de Cadena de consulta o Formulario en MVC, en lugar usted debe tener el parámetro en el controlador que enlazará automáticamente a los valores.
InformationsquelleAutor Web Dev | 2015-06-23

2 Comentarios

  1. 29

    Llegar la consulta con un indizador es compatible.

    Ver MVC código de prueba aquí – https://github.com/aspnet/Mvc/blob/e0b8532735997c439e11fff68dd342d5af59f05f/test/WebSites/ControllersFromServicesClassLibrary/QueryValueService.cs

    context.Request.Query["value"];

    También tenga en cuenta que en MVC 6 puede crear un modelo de enlazar directamente desde la consulta mediante el [FromQuery] atributo.

    public IActionResult ActionMethod([FromQuery]string key1)
    {
        ...
    }
    • [FromQuery] es lo que me faltaba
    • Este es realmente un momento de aprendizaje. Yo no tenía idea de [FromQuery] siquiera existía. No parece estar bien documentada. También hay un [FromHeader] y [FromForm] entre otros. Usted puede incluso escribir los cuadernos, así.
  2. 17

    Así, mi pregunta es – ¿cómo puedo acceder a los parámetros de cadena de consulta en MVC6?

    Puede utilizar Request.Query cual es la nueva adición en ASPNET 5.

     var queryStrings = Request.Query;

    La URL voy a tratar fue – http://localhost:12048/Home/Index?p=123&q=456
    Y usted puede conseguir Todas las Llaves de usar –

    queryStrings.Keys

    El acceso a querystring en ASP.NET MVC6

    Y, a continuación, usted puede obtener los valores de la iteración de las llaves –

     var qsList = new List<string>();
     foreach(var key in queryStrings.Keys)
     {
          qsList.Add(queryStrings[key]);
     }

    El acceso a querystring en ASP.NET MVC6

Dejar respuesta

Please enter your comment!
Please enter your name here