HttpResponse.Redirect Método

Definición

Redirecciona un cliente a una nueva dirección URL.

Sobrecargas

Redirect(String)

Redirecciona una solicitud a una nueva dirección URL y especifica la nueva URL.

Redirect(String, Boolean)

Redirecciona un cliente a una nueva dirección URL. Especifica la nueva URL y si la ejecución de la página actual debe finalizar.

Redirect(String)

Redirecciona una solicitud a una nueva dirección URL y especifica la nueva 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

Ubicación de destino. Puede ser una ruta de acceso virtual relativa a la aplicación.

Excepciones

Se intentó el redireccionamiento después de enviar los encabezados HTTP.

Ejemplos

En el ejemplo siguiente se fuerza una redirección incondicional a otro sitio web.

Response.Redirect("http://www.microsoft.com/gohere/look.htm");

Response.Redirect("http://www.microsoft.com/gohere/look.htm")
   

Comentarios

Llamar Redirect a equivale a llamar Redirect a con el segundo parámetro establecido en true.

Redirect llama a End que produce una ThreadAbortException excepción tras la finalización. Esta excepción tiene un efecto perjudicial en el rendimiento de la aplicación web. Por lo tanto, se recomienda que, en lugar de esta sobrecarga, use la HttpResponse.Redirect(String, Boolean) sobrecarga y pase false para el endResponse parámetro y, a continuación, llame al CompleteRequest método . Para obtener más información, vea el método End.

Nota

Solo para páginas móviles, si la aplicación se basa en sesiones sin cookies o puede recibir solicitudes de dispositivos móviles que requieren sesiones sin cookies, el uso de una tilde (~) en una ruta de acceso puede dar lugar a la creación de una nueva sesión y posiblemente perder datos de sesión. Para establecer una propiedad en un control móvil con una ruta de acceso como "~/path", resuelva la ruta de acceso mediante ResolveUrl "~/path" antes de asignarla a la propiedad .

ASP.NET realiza el redireccionamiento devolviendo un código de estado HTTP 302. Una manera alternativa de transferir el control a otra página es el Transfer método . Normalmente, el Transfer método es más eficaz porque no provoca un recorrido de ida y vuelta al cliente. Para obtener más información, vea Cómo: Redirigir usuarios a otra página.

Se aplica a

Redirect(String, Boolean)

Redirecciona un cliente a una nueva dirección URL. Especifica la nueva URL y si la ejecución de la página actual debe finalizar.

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

Ubicación del destino.

endResponse
Boolean

Indica si la ejecución de la página actual debe terminar.

Excepciones

url es null.

url contiene un carácter de nueva línea.

Se intentó el redireccionamiento después de enviar los encabezados HTTP.

La solicitud de página es el resultado de una devolución de llamada.

Ejemplos

En el ejemplo siguiente se usa la IsClientConnected propiedad para comprobar si el cliente que solicita la página permanece conectado al servidor. Si IsClientConnected es true, el código llama al Redirect método y el cliente verá otra página. Si IsClientConnected es false, el código llama al End método y se finaliza todo el procesamiento de páginas.

<%@ 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>

Comentarios

Se puede especificar una dirección URL absoluta (por ejemplo, http://www.contoso.com/default.aspx) o una dirección URL relativa (por ejemplo, Default.aspx) para la ubicación de destino, pero algunos exploradores pueden rechazar una dirección URL relativa.

Cuando usa este método en un controlador de páginas para finalizar una solicitud de una página e iniciar una nueva solicitud para otra página, establezca endResponse en false y, a continuación, llame al CompleteRequest método . Si especifica true para el endResponse parámetro , este método llama al End método para la solicitud original, que produce una ThreadAbortException excepción cuando se completa. Esta excepción tiene un efecto perjudicial en el rendimiento de la aplicación web, por lo que se recomienda pasar false el endResponse parámetro. Para obtener más información, vea el método End.

Nota

En el caso de las páginas móviles, si la aplicación se basa en sesiones sin cookies o puede recibir solicitudes de dispositivos móviles que requieren sesiones sin cookies, el uso de una tilde (~) en una ruta de acceso puede crear una nueva sesión y perder potencialmente los datos de sesión. Para establecer una propiedad en un control móvil con una ruta de acceso como "~/path", resuelva la ruta de acceso mediante ResolveUrl "~/path" antes de asignarla a la propiedad .

ASP.NET realiza el redireccionamiento devolviendo un código de estado HTTP 302. Una manera alternativa de transferir el control a otra página es el Transfer método . Normalmente, el Transfer método es más eficaz porque no provoca un recorrido de ida y vuelta al cliente. Para obtener más información, vea Cómo: Redirigir usuarios a otra página.

Se aplica a