2012-07-26 28 views

Respuesta

25

Esto es probablemente lo que está buscando

Uri theRealURL = new Uri(HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.RawUrl); 

    string yourValue= HttpUtility.ParseQueryString(theRealURL.Query).Get("yourParm"); 
+1

realmente? ¿Es eso realmente necesario? – james31rock

+0

esto es exactamente lo que quería. – GilliVilla

+2

@ james31rock yes..realmente :) La pregunta no era tan obvia que algunos genios la han rechazado ... Rawurl debe manejarse de esta manera. Lo que otros han mencionado es la querystring predeterminada. – GilliVilla

6

No es necesario pasar por el RawUrl - el objeto Request ya contiene una versión analizada, utilizando la propiedad Request.QueryString.

Esto es un índice NameValueCollection.

+3

Específicamente pregunta cómo hacer esto en RawUrl. La cadena de consulta RawUrl y Request.QueryString no están relacionadas en algunas situaciones, como si está haciendo una reescritura de URL. El hecho de que esté usando RawUrl es una fuerte pista de que está usando la reescritura de URL. – NickG

+0

En el pasado también he usado 'Request.Params' (sugerido por @Piotr), lo que está bien en algunos casos. En otros casos, cambié a 'Request.QueryString' como lo sugirió @Oded. 'Request.QueryString' no activa la validación de parámetros, lo que puede evitar, por ejemplo, cuando acepta HTML como entrada. – Manfred

0

Hay una propiedad de Params en el objeto Request que le permitirá hacerlo fácilmente. No tiene que analizarlo usted mismo.

0

Prueba esto:

string rawURL = HttpContext.Current.Request.ServerVariables["query_string"];

-3

Esto va a resolver su problema .....

string strReq = ""; 
strReq = HttpContext.Current.Request.RawUrl; 
strReq = strReq.Substring(strReq.IndexOf('?') + 1); 
Cuestiones relacionadas