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?

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.


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

antes de redirecionar:

string queryString = Request.QueryString.ToString();

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

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)));


5

Isso pode ser feito usando:

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

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.