HttpResponse.Redirect Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.