Redirecionando Usuários para Outra Página
Você frequentemente desejará redirecionar os usuários para outras páginas como parte do seu aplicativo da Web.O ASP.NET fornece as maneiras a seguir para que você possa criar redirecionamentos em suas páginas da Web:
Utilizando hiperlinks em páginas.
Configurando postagem entre páginas, que habilita que você especifique uma página destino alternativa quando a página atual for enviada.
Redirecionando programaticamente forçando o navegador a solicitar uma página diferente.
Redirecionando programaticamente transferindo o controle para uma página diferente no mesmo aplicativo da Web.
Cada uma dessas opções é descrita abaixo.Uma tabela no final do tópico resume as opções e fornece diretrizes que ajudarão você a decidir quando usar cada opção.
Hiperlinks
Você pode usar uma marca de âncora HTML (<a>) em um página da Web ASP.NET para criar links estáticos, ou você pode controlar programaticamente o texto do link e destino URL de hiperlinks usando o controle HyperLink.Nesse cenário, o usuário clica explicitamente em um link e transfere o navegador para a página de destino.A página de destino é chamada com um comando HTTP GET.Portanto, nenhuma informação sobre a página de origem é passada para a página de destino, a menos que você especifique um cadeia de caracteres de consulta na URL da página de destino.Se a página de origem e destino estiverem no mesmo aplicativo da Web, eles podem compartilhar informações usando estado de sessão ou o estado do aplicativo.
Postagem cruzada de páginas
Por padrão, botões em uma página da Web do ASP.NET postam a página para si mesma.Postagem entre páginas lhe permite configurar um botão em uma página da Web do ASP.NET para postar a página atual para uma página diferente.Um exemplo típico disso refere-se ao criar um formulário de várias páginas.Você pode configurar botões na página que permitam mover para a próxima página e para a página anterior do formulário
Postagem entre páginas é semelhante a hiperlinks em que a transferência é iniciada por uma ação do usuário.No entanto, na postagem entre páginas, a página de destino é chamado usando um comando POST HTTP, o que envia os valores dos controles da página fonte para a página de destino.Além disso, se a página de origem e destino estiverem no mesmo aplicativo da Web, a página de destino poderá acessar propriedades públicas da página Fonte.Como sempre, todas as páginas no aplicativo pode compartilhar informações armazenadas nos estados de sessão ou de aplicativo.
Para obter mais informações, consulte Postagem entre Páginas em Páginas da Web do ASP.NET e Como: Postar páginas da Web do ASP.NET para uma página diferente.
Redirecionando Programaticamente Usando o Navegador
Você pode redirecionar os usuários para outra página usando os recursos do navegador do usuário.Em um redirecionamento do navegador, o navegador emite uma nova solicitação para o servidor de destino na forma de uma solicitação HTTP GET.
Você pode disparar o redirecionamento por programação no script de cliente ou código do servidor.No script de cliente, você pode chamar o método form.submit, desde que o valor do atributo method do elemento <form> seja get.Nesse caso, se a página atual contiver dados de formulário, eles são passado para o servidor de destino, acrescentando-os na URL solicitada como um cadeia de caracteres de consulta.
No código do servidor, você pode redirecionar por programação chamando o método Redirect.O método envia um comando ao navegador do usuário que faz com que o navegador emita um comando GET HTTP para a página de destino.Chamar o método Redirect é o equivalente programático de clicar em um hyperlink já que ambos resultam em uma nova solicitação para a página de destino.Como você está chamando os métodos seu próprio código, você pode definir o destino URL, incluindo quaisquer informações de cadeia de caracteres de consulta dinamicamente.Se as páginas de origem e de destino estiverem no mesmo aplicativo da Web, você pode compartilhar dados entre essas páginas adicionando código de servidor para armazenar os dados no estado de sessão.
Observação: |
---|
O Internet Explorer até a versão 6.0 pode processar até 2.048 caracteres no URL, incluindo os dados na cadeia de caracteres de consulta.Se o URL exceder 2.048 caracteres, poderá resultar em um erro, ou dados a sequência de caracteres da consulta podem ser truncados ou não enviados com a solicitação.Em páginas da Web ASP.NET, a solicitação GET que inclua dados de postagem podem facilmente exceder 2.048 caracteres se a informação do estado de exibição (que é armazenada em um campo escondido) for incluída como parte da solicitação, resultando em erros.Outros navegadores podem não ter essa limitação.Para obter mais informações, consulte o artigo 208247, "Maximum URL length é 2,083 caracteres no Internet Explorer" na Base de Dados de Conhecimento Microsoft da Microsoft em http://suporte.microsoft.com.Para contornar essa limitação quando você está tentando compartilhar informações entre páginas, você pode redirecionar sistema autônomo usuários por meio de solicitações HTTP POST sistema autônomo discutidos neste tópico.Se seu aplicativo exigir uma solicitação HTTP GET, você pode armazenar informações de uma maneira alternativa, sem usar uma cadeia de caracteres da consulta, tal como em estado de sessão. |
Redirecionando Programaticamente no Servidor
Você também pode redirecionar por programação a uma página de destino no servidor chamando o método Transfer.Nesse cenário, o servidor simplesmente transfere o contexto da página fonte atual para a página de destino.A página de destino então é processada no lugar da página fonte .As páginas de origem e de destino devem estar no mesmo aplicativo da Web.Assim como com postagens entre páginas, o método Transfer tem a vantagem de permitir que a página fonte leia valores de controles e valores de propriedades públicas a partir da página fonte.
Como a transferência entre as páginas de origem e de destino acontecem no servidor, o navegador não possui informações sobre a página alterada, e ele retém informações sobre o URL original (origem).Por exemplo, a caixaAddress no Internet Explorer não é alterada após uma transferência, e, em vez disso, continua a mostrar o URL da página mais recentemente solicitada (que é geralmente a página fonte).O histórico do navegador não é atualizado para refletir a transferência.Isso pode resultar em um comportamento inesperado caso o usuário atualize a página no navegador ou clique no botão voltar do navegador.Portanto, chamar o método Transfer é uma estratégia que é melhor usada em aplicativos onde você está apresentando páginas ao usuário com o URL oculto.
Selecionando uma Opção de Redirecionamento
A tabela a seguir resume as maneiras possíveis para se redirecionar entre páginas.
Estratégia |
Características |
Uso |
---|---|---|
Hiperlinks |
|
|
Postagem entre páginas |
|
|
Redirecionamento do navegador |
|
|
Transferência no servidor |
|
|
Consulte também
Tarefas
Como: Passar valores entre páginas da Web do ASP.NET
Como: Postar páginas da Web do ASP.NET para uma página diferente
Como: Determinar como foram invocadas páginas da Web do ASP.NET