Como passar vários parâmetros em uma string de consulta

92

I tem três valores, e que devo passar como parâmetros para, por exemplo, strID, strNamee 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?

user42348
fonte

Respostas:

113

Query_string

(A seguir está o texto da seção vinculada da entrada da Wikipedia.)

Estrutura

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:

  • um formulário da web por meio do elemento ...
  • um mapa de imagem do lado do servidor por meio do atributo ismap no elemento com uma construção
  • uma pesquisa indexada por meio do elemento agora obsoleto

Formulários da web

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...

  • A string de consulta é composta por uma série de pares de valor de campo.
  • Dentro de cada par, o nome do campo e o valor são separados por um sinal de igual. O sinal de igual pode ser omitido se o valor for uma string vazia.
  • A série de pares é separada pelo "e" comercial, '&' (ou ponto e vírgula, ';' para URLs incorporados em HTML e não gerados por ...; veja abaixo). Embora não haja um padrão definitivo, a maioria das estruturas da web permite que vários valores sejam associados a um único campo:

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.

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

antes de redirecionar:

string queryString = Request.QueryString.ToString();

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

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)));
Ankush Dubey
fonte
8
~mypage.aspx?strID=x&strName=y&strDate=z
Adam Ralph
fonte
5

Isso pode ser feito usando:

Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");
HariPrasad
fonte
1
@DalijaPrasnikar este "link" é um url que aponta para localhost e faz parte da resposta. Por favor, não faça uma "revisão robótica".
ElGavilan
1

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.

Thomas Fonseca
fonte