read querystring query por pasar parametros net aspx asp asp.net query-string

asp.net - por - request querystring javascript



Asp.net-Empty QueryString Parameter (6)

Dreas es correcto. La "barra" variable tiene un valor pero foo no.

El problema

¿Cuál es la forma correcta de verificar el parámetro foo en la siguiente cadena de consulta de url usando asp.net? ¿Esto es posible?

http://example.com?bar=3&foo

He intentado verificar Request["foo"] y Request.QueryString["foo"] y obtengo un null para ambos. También intenté completar una List con los valores de la colección QueryString , pero como menciono a continuación, no incluye el valor.

La pregunta

Entiendo que no hay ningún valor, pero ¿no debería Request["foo"] devolver una cadena vacía en lugar de null ? ¿Hay alguna forma de averiguar si existe una clave de consulta incluso si no tiene ningún valor?

Notas

Encontré aquí que Request.QueryString.AllKeys incluye null para los parámetros de la cadena de búsqueda en blanco.

[editar]

Como se indica a continuación por James y Dreas, un Regex para analizar la url en bruto podría ser el mejor (y posiblemente único) enfoque.

Regex.IsMatch(Request.RawUrl, "[?&]thumb([&=]|$)")


Obtiene nulo porque el parámetro foo no tiene un valor.

... ¿Cuál es el problema exactamente?

Si aún desea verificar su existencia (aunque le falta un valor), intente algo como esto:

bool doesFooExist = Request.Url.AbsoluteUri.IndexOf("foo=") >= 0 ? true : false;


QueryString ["Barra"] devolverá 3 porque tiene el valor 3 asociado a la barra variable. Sin embargo, Foo devolverá nulo porque no tiene valor y cuando llama a QueryString en una variable o clave, está consultando el valor, no la clave, por lo que está devolviendo nulo.


Request.ServerVariables["QUERY_STRING"] devolverá la cadena de consulta, completa, como una cadena. Luego búscalo usando Regex o IndexOf


cadena de consulta es probablemente una basura. Si usa Request.Params [""] o lo itera, encontrará el deseado. Es realmente útil que otras cosas.

Avíseme si necesita ayuda con esto.


Puede usar null como clave para NameValueCollection y le dará una lista delimitada por comas de nombres de parámetros que no tienen valores.

Para http://example.com?bar=3&foo usaría Request.QueryString[null] y recuperaría foo .

Si tiene más de un nombre de parámetro sin un valor, le dará un valor delimitado por comas.

Para http://example.com?bar=3&foo&test obtendrás foo,test como valor devuelto.

Actualizar:

Puede usar Request.QueryString.GetValues(null) para obtener los nombres de los parámetros que no tienen valores.