Olá pessoal, neste artigo veremos os conceitos e a sintaxe para o uso de um recurso muito usado dentro do ASP.NET, que se chama QueryString.

A QueryString é um modelo clássico de manutenção do estado da página. Elas são nada mais do que conjuntos de pares/valores anexados a URL, em diversos sites hoje em dia vemos o uso delas.

Seu uso é simples, após a URL de determinada página, adicionamos o primeiro valor usando a seguinte sintaxe: ?Chave=Valor. Para passarmos mais de um conjunto, os mesmos devem ser concatenados usando o caractere coringa &.

Para recuperarmos o valor na outra página, usamos o método Request.QueryString.

Para entendermos melhor isso, vamos criar uma nova aplicação web, dando a ela o nome ExemploQueryString. Nela, além da Default.aspx, adicione mais uma página, a Default2.aspx.

Na Default.aspx arraste um HyperLink para a tela e configure a propriedade NavigateUrl como a que o código abaixo nos mostra:

asp:HyperLink ID="hypPagina2" Text="Ir para a página 2" runat="server" NavigateUrl="~/Default2.aspx?Parametro=Wellington" /

Na Default2.aspx arraste um Label para a página, dando o ID a ele de lblValorQueryString. Agora vá a página de códigos e, no evento Page_Load, coloque o seguinte método:

protected void Page_Load(object sender, EventArgs e)
{
    string valor = Request.QueryString["Parametro"];


    if (valor != null)
    {
        lblValorQueryString.Text = "Parâmetro: " + valor;
    }
}

No código acima criei uma variável do tipo String, que recebe, por meio do método Request.QueryString, o valor do parâmetro, que nesse exemplo é Parametro. Depois verifico se esse é valor é diferente de nulo. Se for, a Label criada na aspx receberá o texto “Parâmetro: “, concatenado com a variável valor preenchida com a QueryString.

Compile o projeto, clique no HyperLink e veja o resultado:

Exibindo parâmetro da QueryString

Experimente alterar o parâmetro e dar Enter na barra de endereços:

Exibindo parâmetro alterado da QueryString

Agora como teste comente o código do Page_Load e adicione o seguinte:

foreach (String item in Request.QueryString.Keys)
{
    lblValorQueryString.Text += "Chave= " + item + " --> " + Request.QueryString[item] + "<br>";
}

Dessa forma faço um laço para percorrer uma lista de QueryString para que as mesmas sejam exibidas concatenadas pela Label. Compile novamente a aplicação, clique no HyperLink e veja o resultado:

Listando todos os parâmetros da QueryString

Para melhor entendimento, concatene na URL três valores e veja o resultado:

Listando todos os parâmetros alterados da QueryString

Assim finalizo o artigo. Muito obrigado a todos!

Um abraço, e até o próximo artigo.