I tem três valores, e que devo passar como parâmetros para, por exemplo, strID
, strName
e strDate
.
Eu quero redirecionar esses três parâmetros para outra página em. Response.Redirect()
Alguém pode me fornecer a string de consulta correta?
Respostas:
(A seguir está o texto da seção vinculada da entrada da Wikipedia.)
Um URL típico contendo uma string de consulta é o seguinte:
http://server/path/program?query_string
Quando um servidor recebe uma solicitação para tal página, ele executa um programa (se configurado para fazer isso), passando a query_string inalterada para o programa. O ponto de interrogação é usado como separador e não faz parte da string de consulta.
Um link em uma página da web pode ter um URL que contém uma string de consulta; no entanto, o HTML define três maneiras como um navegador da web pode gerar a string de consulta:
O principal uso das strings de consulta é conter o conteúdo de um formulário HTML, também conhecido como formulário da web. Em particular, quando um formulário contendo os campos field1, field2, field3 é enviado, o conteúdo dos campos é codificado como uma string de consulta da seguinte maneira:
field1=value1&field2=value2&field3=value3...
field1=value1&field1=value2&field1=value3...
Para cada campo do formulário, a string de consulta contém um par campo = valor. Os formulários da Web podem incluir campos que não são visíveis ao usuário; esses campos são incluídos na string de consulta quando o formulário é enviado
Esta convenção é uma recomendação do W3C. O W3C recomenda que todos os servidores da web suportem separadores de ponto-e-vírgula além dos separadores de e comercial [6] para permitir strings de consulta codificadas por application / x-www-form-url em URLs dentro de documentos HTML sem a necessidade de definir "e" comercial de escape.
Tecnicamente, o conteúdo do formulário só é codificado como uma string de consulta quando o método de envio do formulário é GET. A mesma codificação é usada por padrão quando o método de envio é POST, mas o resultado não é enviado como uma string de consulta, ou seja, não é adicionado ao URL de ação do formulário. Em vez disso, a string é enviada como o corpo da solicitação HTTP.
Tente assim. Deve 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
Isso pode ser feito usando:
Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");
Eu uso o AbsoluteUri e você pode obtê-lo assim:
string myURI = Request.Url.AbsoluteUri;
if (!WebSecurity.IsAuthenticated) {
Response.Redirect("~/Login?returnUrl="
+ Request.Url.AbsoluteUri );
Depois de fazer login:
var returnUrl = Request.QueryString["returnUrl"];
if(WebSecurity.Login(username,password,true)){
Context.RedirectLocal(returnUrl);
Funciona bem para mim.