2010-03-03 10 views

Respuesta

81

Sí, utilizar la colección HttpRequest.QueryString:

Obtiene la colección de variables de cadena de consulta HTTP.

Se puede utilizar la siguiente manera:

foreach (String key in Request.QueryString.AllKeys) 
{ 
    Response.Write("Key: " + key + " Value: " + Request.QueryString[key]); 
} 
+6

Algo señalar que esto sólo se puede obtener los pares, si le sucede que tiene una cadena de consulta como ? ok, no obtendrás nada de este método. http://stackoverflow.com/questions/14902059/check-if-unassigned-variable-exists-in-request-querystring –

9

Bueno, Request.QueryString ya es una colección. Específicamente, es un NameValueCollection. Si su código se ejecuta en ASP.NET, eso es todo lo que necesita.

Para responder a su pregunta: Sí, la hay.

2

QueryString propiedad en HttpRequest clase es realmente NameValueCollection clase. Todo lo que necesita hacer es

NameValueCollection col = Request.QueryString;

6

Si tiene una cadena de consulta SÓLO representada como una cadena, use HttpUtility.ParseQueryString para analizarla en NameValueCollection.

Sin embargo, si esto es parte de una HttpRequest, entonces use la propiedad QueryString ya analizada de su HttpRequest.

4

Puede utilizar LINQ para crear una lista de objetos anónimos que se puede acceder dentro de una matriz:

var qsArray = Request.QueryString.AllKeys 
    .Select(key => new { Name=key.ToString(), Value=Request.QueryString[key.ToString()]}) 
    .ToArray(); 
Cuestiones relacionadas