HttpResponse.Redirect Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Redireciona um cliente para uma nova URL.
Sobrecargas
Redirect(String) |
Redireciona uma solicitação para uma nova URL e especifica a nova URL. |
Redirect(String, Boolean) |
Redireciona um cliente para uma nova URL. Especifica a nova URL e se a execução da página atual deve ser terminada. |
Redirect(String)
Redireciona uma solicitação para uma nova URL e especifica a nova URL.
public:
void Redirect(System::String ^ url);
public void Redirect (string url);
member this.Redirect : string -> unit
Public Sub Redirect (url As String)
Parâmetros
- url
- String
O local de destino. Ele pode ser um caminho virtual relativo ao aplicativo.
Exceções
Houve uma tentativa de redirecionamento após o envio dos cabeçalhos HTTP.
Exemplos
O exemplo a seguir força um redirecionamento incondicional para outro site.
Response.Redirect("http://www.microsoft.com/gohere/look.htm");
Response.Redirect("http://www.microsoft.com/gohere/look.htm")
Comentários
Chamar Redirect é equivalente a chamar Redirect com o segundo parâmetro definido como true
.
Redirect chamadas End que geram uma ThreadAbortException exceção após a conclusão. Essa exceção tem um efeito prejudicial no desempenho do aplicativo Web. Portanto, recomendamos que, em vez dessa sobrecarga, você use a HttpResponse.Redirect(String, Boolean) sobrecarga e passe false
para o endResponse
parâmetro e chame o CompleteRequest método . Para obter mais informações, consulte o método End.
Observação
Somente para páginas móveis, se seu aplicativo depende de sessões sem cookie ou pode receber solicitações de dispositivos móveis que exigem sessões sem cookie, usar um bloco (~) em um caminho pode resultar na criação de uma nova sessão e potencialmente na perda de dados de sessão. Para definir uma propriedade em um controle móvel com um caminho como "~/path", resolve o caminho usando ResolveUrl "~/path" antes de atribuí-la à propriedade .
ASP.NET executa o redirecionamento retornando um código de status HTTP 302. Uma maneira alternativa de transferir o controle para outra página é o Transfer método . O Transfer método normalmente é mais eficiente porque não causa uma viagem de ida e volta para o cliente. Para obter mais informações, consulte Como redirecionar usuários para outra página.
Aplica-se a
Redirect(String, Boolean)
Redireciona um cliente para uma nova URL. Especifica a nova URL e se a execução da página atual deve ser terminada.
public:
void Redirect(System::String ^ url, bool endResponse);
public void Redirect (string url, bool endResponse);
member this.Redirect : string * bool -> unit
Public Sub Redirect (url As String, endResponse As Boolean)
Parâmetros
- url
- String
O local do destino.
- endResponse
- Boolean
Indica se a execução da página atual deve ser terminada.
Exceções
url
é null
.
url
contém um caractere de nova linha.
Houve uma tentativa de redirecionamento após o envio dos cabeçalhos HTTP.
A solicitação de página é o resultado de um retorno de chamada.
Exemplos
O exemplo a seguir usa a IsClientConnected propriedade para marcar se o cliente que está solicitando a página permanece conectado ao servidor. Se IsClientConnected for true, o código chamará o Redirect método e o cliente exibirá outra página. Se IsClientConnected for false, o código chamará o End método e todo o processamento de página será encerrado.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
private void Page_Load(object sender, EventArgs e)
{
// Check whether the browser remains
// connected to the server.
if (Response.IsClientConnected)
{
// If still connected, redirect
// to another page.
Response.Redirect("Page2CS.aspx", false);
}
else
{
// If the browser is not connected
// stop all response processing.
Response.End();
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Private Sub Page_Load(sender As Object, e As EventArgs)
' Check whether the browser remains
' connected to the server.
If (Response.IsClientConnected) Then
' If still connected, redirect
' to another page.
Response.Redirect("Page2VB.aspx", false)
Else
' If the browser is not connected
' stop all response processing.
Response.End()
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
</html>
Comentários
Uma URL absoluta (por exemplo, http://www.contoso.com/default.aspx
) ou uma URL relativa (por exemplo, Default.aspx) pode ser especificada para o local de destino, mas alguns navegadores podem rejeitar uma URL relativa.
Quando você usa esse método em um manipulador de páginas para encerrar uma solicitação de uma página e iniciar uma nova solicitação para outra página, defina endResponse
como false
e chame o CompleteRequest método. Se você especificar true
para o endResponse
parâmetro , esse método chamará o End método para a solicitação original, o que gerará uma ThreadAbortException exceção quando ela for concluída. Essa exceção tem um efeito prejudicial no desempenho do aplicativo Web, razão pela qual a passagem false
para o endResponse
parâmetro é recomendada. Para obter mais informações, consulte o método End.
Observação
Para páginas móveis, se seu aplicativo depende de sessões sem cookie ou pode receber solicitações de dispositivos móveis que exigem sessões sem cookie, usar um bloco (~) em um caminho pode criar uma nova sessão e potencialmente perder dados de sessão. Para definir uma propriedade em um controle móvel com um caminho como "~/path", resolve o caminho usando ResolveUrl "~/path" antes de atribuí-la à propriedade .
ASP.NET executa o redirecionamento retornando um código de status HTTP 302. Uma maneira alternativa de transferir o controle para outra página é o Transfer método . O Transfer método normalmente é mais eficiente porque não causa uma viagem de ida e volta para o cliente. Para obter mais informações, consulte Como redirecionar usuários para outra página.