Cómo pasar varios parámetros en una cadena de consulta


89

Tengo tres valores que tengo que pasar como parámetros para, por ejemplo strID, strNamey strDate.

Quiero redirigir estos tres parámetros a otra página en. Response.Redirect()¿Alguien puede proporcionarme la cadena de consulta correcta?

Respuestas:


111

Query_string

(A continuación se muestra el texto de la sección vinculada de la entrada de Wikipedia).

Estructura

Una URL típica que contiene una cadena de consulta es la siguiente:

http://server/path/program?query_string

Cuando un servidor recibe una solicitud para dicha página, ejecuta un programa (si está configurado para hacerlo), pasando la query_string sin cambios al programa. El signo de interrogación se utiliza como separador y no forma parte de la cadena de consulta.

Un enlace en una página web puede tener una URL que contiene una cadena de consulta, sin embargo, HTML define tres formas en que un navegador web puede generar la cadena de consulta:

  • un formulario web a través del elemento ...
  • un mapa de imagen del lado del servidor a través del atributo ismap en el elemento con una construcción
  • una búsqueda indexada a través del elemento ahora obsoleto

Formularios web

El uso principal de las cadenas de consulta es contener el contenido de un formulario HTML, también conocido como formulario web. En particular, cuando se envía un formulario que contiene los campos field1, field2, field3, el contenido de los campos se codifica como una cadena de consulta de la siguiente manera:

field1=value1&field2=value2&field3=value3...

  • La cadena de consulta se compone de una serie de pares campo-valor.
  • Dentro de cada par, el nombre y el valor del campo están separados por un signo igual. El signo igual puede omitirse si el valor es una cadena vacía.
  • La serie de pares está separada por el signo comercial, '&' (o punto y coma, ';' para las URL incrustadas en HTML y no generadas por un ...; ver más abajo). Si bien no existe un estándar definitivo, la mayoría de los marcos web permiten asociar varios valores con un solo campo:

field1=value1&field1=value2&field1=value3...

Para cada campo del formulario, la cadena de consulta contiene un par campo = valor. Los formularios web pueden incluir campos que no son visibles para el usuario; estos campos se incluyen en la cadena de consulta cuando se envía el formulario

Esta convención es una recomendación del W3C. W3C recomienda que todos los servidores web admitan separadores de punto y coma además de los separadores de y comercial [6] para permitir cadenas de consulta con codificación de aplicación / x-www-form-urlencoded en URL dentro de documentos HTML sin tener que escapar de la entidad.

Técnicamente, el contenido del formulario solo se codifica como una cadena de consulta cuando el método de envío del formulario es GET. La misma codificación se usa de forma predeterminada cuando el método de envío es POST, pero el resultado no se envía como una cadena de consulta, es decir, no se agrega a la URL de acción del formulario. Más bien, la cadena se envía como el cuerpo de la solicitud HTTP.


34
Query String: ?strID=XXXX&strName=yyyy&strDate=zzzzz

antes de redirigir:

string queryString = Request.QueryString.ToString();

Response.Redirect("page.aspx?"+queryString);

15

Intenta así, debería funcionar

Response.Redirect(String.Format("yourpage.aspx?strId={0}&strName={1}&strDate{2}", Server.UrlEncode(strId), Server.UrlEncode(strName),Server.UrlEncode(strDate)));


5

Esto se puede hacer usando:

Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");

1
@DalijaPrasnikar este "enlace" es una url que apunta a localhost y es parte de la respuesta. Por favor, no "revise automáticamente".
ElGavilan

1

Yo uso AbsoluteUri y puedes conseguirlo así:

string myURI = Request.Url.AbsoluteUri;
 if (!WebSecurity.IsAuthenticated) {
        Response.Redirect("~/Login?returnUrl="
            + Request.Url.AbsoluteUri );

Luego, después de iniciar sesión:

var returnUrl = Request.QueryString["returnUrl"];
 if(WebSecurity.Login(username,password,true)){
                Context.RedirectLocal(returnUrl);

Funciona bien para mi

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.