Tengo tres valores que tengo que pasar como parámetros para, por ejemplo strID
, strName
y strDate
.
Quiero redirigir estos tres parámetros a otra página en. Response.Redirect()
¿Alguien puede proporcionarme la cadena de consulta correcta?
Respuestas:
(A continuación se muestra el texto de la sección vinculada de la entrada de Wikipedia).
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:
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...
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.
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)));
~mypage.aspx?strID=x&strName=y&strDate=z
Esto se puede hacer usando:
Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");
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