Partilhar via


HttpResponse.Redirect Método

Definição

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.

Aplica-se a