Friday, 14 de September de 2007
Olá pessoal, tudo jóia?
Alguns nunca devem ter notado que existe um método chamado Server.Transfer() que faz algo parecido com o Response.Redirect(), correto? Hoje irei explicar para que serve cada um deles e como usá-los. Vamos lá!
Primeiro, não devemos confundir Response.Redirect() com Server.Transfer(), cada um tem suas peculiaridades, desempenhando operações diferentes.
O Response.Redirect simplesmente envia uma mensagem ao navegador, informando para ele mover para uma outra página. Seu código é este:
Response.Redirect("WebForm2.aspx");
ou
Response.Redirect("http://www.codigofonte.net");
que irá direcionar para um outro site.
O Server.Transfer é semelhante a o Response.Redirect, porém ele direciona apenas para o site atual, além de permanecer a sessão atual. Um pouco confuso, não? Vou explicar melhor:
Primeiramente, transferindo para uma outra página usando o Server.Transfer conservamos os recursos do servidor. No lugar de avisar ao navegador para redirecionar para uma outra página, ele simplesmente muda o "focus" do Web server e transfere a requisição. Isto significa que você não irá fazer requisições do tipo GET ao servidor, fazendo com que sua página seja aberta mais rápida, pois você não irá pressionar o servidor para processar aquela requisição.
Porém, devido ao Server.Transfer trabalhar desta forma, ele apenas irá transferir páginas que estão no próprio servidor, não permitindo que seja direcionado para um outro site.
Segundo, o Server.Transfer mantém a url original no navegador. Isto pode ajudar a prevenir comandos incorretos a sua página, porém dificulta a identificação de erros no debug.
Mas não é só isto!
O Server.Transfer tem um segundo parâmetro - preserverForm. Ele atribuído como "True", por exemplo Server.Transfer("WebForm2.aspx", True), a query existente e todos as variávels do form irão permanecer disponíveis na página que você está transferindo.
Por exemplo, se você tem WebForm1.aspx que possui um TextBox chamado TextBox1 e você deseja transferir para WebForm2.aspx com o "preserverForm" ativo, você irá permitir que o valor do TextBox1 seja lido no WebForm2 da seguinte forma: Request.Form("TextBox1")
Esta técnica é bastante utilizada em formulário de passo-a-passo, ou mais conhecidos como Wizards, que possuem várias páginas com os dados informados naquele passo.
Importante!
Não confunda Server.Transfer com Server.Execute, que irá executa a página e retornar o seu resultado. Ele foi util no passado, mas, com o ASP.Net, ele foi substituído por métodos mais recentes. Portanto, você pode ignorá-lo.
Bom, por hoje é só pessoal.
Espero que tenham gostado da dica.
Até a próxima.
Nenhum comentário, seja o primeiro a comentar.
Para adicionar um comentário você deve efetuar o
login