Compartilhar via


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.

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

  • Executa nova solicitação na página de destino.

  • Não passa informações da página atual para a página de destino.

  • Requer inicialização do usuário.

  • Redireciona para qualquer página, não apenas para páginas no mesmo aplicativo da Web.

  • Permite que você compartilhe informações entre páginas usando cadeias de caracteres de consulta ou estado de sessão.(O controle HyperLink permite que você criar URL e cadeia de caracteres de consulta por programação.)

  • Para navegação sem quaisquer processamentos adicionais, como em menus ou listas de links.

  • Quando a navegação deve estar sobre o controle do usuário.

Postagem entre páginas

  • Posta informações da página atual para a página de destino.

  • Faz com que as informações de postagem fiquem disponíveis na página de destino.

  • Requer inicialização do usuário.

  • Redireciona para qualquer página, não apenas para páginas no mesmo aplicativo da Web.

  • Permite que a página de destino leia propriedades públicas da página fonte se essas páginas estiverem no mesmo aplicativo da Web.

  • Para passar informações da página atual para a página de destino (como em formulários de várias páginas).

  • Quando a navegação deve estar sobre o controle do usuário.

Redirecionamento do navegador

  • Executa uma nova solicitação HTTP GET na página de destino.

  • Passa a cadeia de caracteres da consulta (se houver) para a página de destino.No Internet Explorer, o tamanho da cadeia de caracteres da consulta é limitado a 2.048 caracteres.

  • Fornece controle programático e dinâmico sobre o URL de destino e sobre a sequência de caracteres de consulta.

  • Permite que você redirecione para qualquer página, não apenas para páginas no mesmo aplicativo da Web.

  • Permite que você compartilhe informações entre páginas de origem e destino usando estado de sessão.

  • Para navegação condicional, quando você desejar controlar o URL de destino e controlar quando a navegação ocorrer.Por exemplo, use esta opção se o aplicativo precisar determinar para qual página navegar baseado em dados fornecidas pelo usuário.

Transferência no servidor

  • Transefere o controle para uma nova página que é processada no lugar da página fonte.

  • Redireciona somente para páginas de destino que estão no mesmo aplicativo da Web que a página fonte.

  • Permite que você a leia valores e propriedades públicas da página fonte.

  • Não atualiza informações do navegador com informações sobre a página de destino.Pressionar os botões atualizar ou voltar em seu navegador pode resultar em um comportamento inesperado.

  • Para navegação condicional, quando você desejar controlar quando a navegação ocorre e quiser acesso ao contexto da página fonte.

  • Mais adequada em situações onde o URL está oculto do usuário.

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

Conceitos

Visão Geral sobre o Gerenciamento de Estado do ASP.NET