HttpResponse.Redirect Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Redireciona um cliente para uma nova URL.
Sobrecargas
| Name | Description |
|---|---|
| Redirect(String) |
Redireciona um pedido para uma nova URL e especifica a nova URL. |
| Redirect(String, Boolean) |
Redireciona um cliente para uma nova URL. Especifica o novo URL e se a execução da página atual deve terminar. |
Redirect(String)
Redireciona um pedido 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. Este pode ser um caminho virtual relativo à aplicação.
Exceções
É tentada uma redirecção depois de os cabeçalhos HTTP terem sido enviados.
Exemplos
O exemplo seguinte 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")
Observações
Chamar Redirect é equivalente a chamar Redirect com o segundo parâmetro definido em true.
Redirect chamadas End que lançam uma ThreadAbortException exceção após a conclusão. Esta exceção tem um efeito prejudicial no desempenho das aplicações Web. Por isso, recomendamos que, em vez desta sobrecarga, use a HttpResponse.Redirect(String, Boolean) sobrecarga e passe false para o endResponse parâmetro, e depois chame o CompleteRequest método. Para obter mais informações, consulte o método End.
Note
Para páginas móveis apenas, se a sua aplicação depender de sessões sem cookies, ou puder receber pedidos de dispositivos móveis que requerem sessões sem cookies, usar um tilde (~) num caminho pode resultar na criação de uma nova sessão e potencialmente na perda de dados da sessão. Para definir uma propriedade num controlo móvel com um caminho como "~/caminho", resolva o caminho usando ResolveUrl "~/caminho" antes de o atribuir à propriedade.
O ASP.NET realiza o redirecionamento devolvendo um código de estado HTTP 302. Uma forma alternativa de transferir o controlo para outra página é o Transfer método. O Transfer método é tipicamente mais eficiente porque não provoca uma viagem de ida e volta ao cliente. Para mais informações, veja Como: Redirecionar Utilizadores para Outra Página.
Aplica-se a
Redirect(String, Boolean)
Redireciona um cliente para uma nova URL. Especifica o novo URL e se a execução da página atual deve terminar.
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
A localização do alvo.
- endResponse
- Boolean
Indica se a execução da página atual deve terminar.
Exceções
url é null.
url contém um carácter de nova linha.
É tentada uma redirecção depois de os cabeçalhos HTTP terem sido enviados.
O pedido de página resulta de um callback.
Exemplos
O exemplo seguinte utiliza a IsClientConnected propriedade para verificar se o cliente que está a pedir a página permanece ligado ao servidor. Se IsClientConnected for verdadeiro, o código chama o Redirect método e o cliente verá outra página. Se IsClientConnected for falso, então o código chama o End método e todo o processamento da página é terminado.
<%@ 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>
Observações
Uma URL absoluta (por exemplo, http://www.contoso.com/default.aspx) ou uma URL relativa (por exemplo, Default.aspx) pode ser especificada para a localização de destino, mas alguns navegadores podem rejeitar uma URL relativa.
Quando usar este método num manipulador de páginas para terminar um pedido para uma página e iniciar um novo pedido para outra página, defina endResponse para false e depois chame o CompleteRequest método. Se especificar true para o endResponse parâmetro, este método chama o End método para o pedido original, que lança uma ThreadAbortException exceção quando este termina. Esta exceção tem um efeito prejudicial no desempenho das aplicações Web, razão pela qual se recomenda passar false pelo endResponse parâmetro. Para obter mais informações, consulte o método End.
Note
Para páginas móveis, se a sua aplicação depende de sessões sem cookies, ou pode receber pedidos de dispositivos móveis que exigem sessões sem cookies, usar um tilde (~) num caminho pode criar uma nova sessão e potencialmente perder dados da sessão. Para definir uma propriedade num controlo móvel com um caminho como "~/caminho", resolva o caminho usando ResolveUrl "~/caminho" antes de o atribuir à propriedade.
O ASP.NET realiza o redirecionamento devolvendo um código de estado HTTP 302. Uma forma alternativa de transferir o controlo para outra página é o Transfer método. O Transfer método é tipicamente mais eficiente porque não provoca uma viagem de ida e volta ao cliente. Para mais informações, veja Como: Redirecionar Utilizadores para Outra Página.