none
Esconder Parâmetros na URL RRS feed

  • Pergunta

  • Olá boa tarde,

    Tenho uma página: Cons.aspx

    protected void btn_Click(object sender, EventArgs e) {
        Response.Redirect("Cad.aspx?id=1", false);
    }

    E no Cad.aspx:

    public void Page_Load(object sender, EventArgs e) {
        id = Convert.ToInt32(Request.QueryString["id"]);
    }

    E eu quero esconder o parâmetro id=1 da minha url, porém sem usar o Server.Transfer!

    Essa thread explica isso, mas não consegui entender e aplicá-la no meu sistema: http://stackoverflow.com/questions/529551/how-can-i-remove-item-from-querystring-in-asp-net-using-c

    Alguém poderia me ajudar?

    Obrigada

    quinta-feira, 2 de agosto de 2012 15:26

Respostas

  • Juliana,

    Já pensou em utilizar Session? Seria muito mais rápido e fácil!

    protected void btn_Click(object sender, EventArgs e) {
        Session.Add("Cad_Id", 1);
        Response.Redirect("Cad.aspx", false);
    }

    public void Page_Load(object sender, EventArgs e) {
        id = Convert.ToInt32(Session["id"]);
    }

    Espero ter ajudado e boa sorte!


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    • Sugerido como Resposta Rafa Santos quinta-feira, 2 de agosto de 2012 17:38
    • Marcado como Resposta Juliana Machado quinta-feira, 2 de agosto de 2012 20:20
    quinta-feira, 2 de agosto de 2012 16:49
  • A thread do Stackoverflow não vai resolver seu problema. Ela ensina a remover uma posição de uma QueryString já existente. Se ela for removida antes de enviada, ela não irá para a próxima página.

    A solução do Lucas é o melhor nesse caso.


    Rafael Santos
    E-mail: rsdsantos@gmail.com

    Pequeno Gafanhoto

    • Marcado como Resposta Juliana Machado quinta-feira, 2 de agosto de 2012 20:20
    quinta-feira, 2 de agosto de 2012 17:38

Todas as Respostas

  • Juliana,

    Já pensou em utilizar Session? Seria muito mais rápido e fácil!

    protected void btn_Click(object sender, EventArgs e) {
        Session.Add("Cad_Id", 1);
        Response.Redirect("Cad.aspx", false);
    }

    public void Page_Load(object sender, EventArgs e) {
        id = Convert.ToInt32(Session["id"]);
    }

    Espero ter ajudado e boa sorte!


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    • Sugerido como Resposta Rafa Santos quinta-feira, 2 de agosto de 2012 17:38
    • Marcado como Resposta Juliana Machado quinta-feira, 2 de agosto de 2012 20:20
    quinta-feira, 2 de agosto de 2012 16:49
  • A thread do Stackoverflow não vai resolver seu problema. Ela ensina a remover uma posição de uma QueryString já existente. Se ela for removida antes de enviada, ela não irá para a próxima página.

    A solução do Lucas é o melhor nesse caso.


    Rafael Santos
    E-mail: rsdsantos@gmail.com

    Pequeno Gafanhoto

    • Marcado como Resposta Juliana Machado quinta-feira, 2 de agosto de 2012 20:20
    quinta-feira, 2 de agosto de 2012 17:38
  • Sério que a melhor solução para passar parâmetros entre páginas é utilizando session?

    Esse realmente é o padrão aspx na passagem de parâmetros escondidos na url?

    Sempre pensei que houvesse uma solução melhor elaborada, já que na página 2 que recebe esses parâmetros, terei que excluir cada session setada na página 1 para não ter problema de memória no servidor.

    quinta-feira, 2 de agosto de 2012 17:56
  • Existem as seguintes formas de você recuperar o estado de um determinado elemento em uma transição de páginas:

    1 - Cookie;
    2 - Session;
    3 - QueryString;
    3.1 - Response.Redirect() [Explícito];
    3.2 - Server.Transfer() [Oculto];
    4 - Post;
    5 - Get;
    6 - Gravar o registro em um repositório não gerenciado e recuperar através de um ID;

    Eu usaria o Server.Transfer(), mas você disse que não quer. Então a melhor e mais fácil sugestão seria a Session. Se sua maior preocupação é a utilização de memória, tem uma solução. O ASP.NET tem diferentes formas de se armazenar o dado de uma sessão, inclusive uma que utiliza o banco de dados.

    Referências:

    http://msdn.microsoft.com/en-us/library/ms972429.aspx
    http://msdn.microsoft.com/en-us/library/ms178581.aspx
    http://blogs.msdn.com/b/webtopics/archive/2009/07/22/in-proc-session-state-management.aspx


    Rafael Santos
    E-mail: rsdsantos@gmail.com

    Pequeno Gafanhoto

    quinta-feira, 2 de agosto de 2012 18:19
  • Obrigada pessoal,

    O melhor jeito nesse caso é usar session mesmo

    bjs

    quinta-feira, 2 de agosto de 2012 20:21