HttpResponse.Redirect Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Leidt een client om naar een nieuwe URL.
Overloads
| Name | Description |
|---|---|
| Redirect(String) |
Hiermee wordt een aanvraag omgeleid naar een nieuwe URL en wordt de nieuwe URL opgegeven. |
| Redirect(String, Boolean) |
Leidt een client om naar een nieuwe URL. Hiermee geeft u de nieuwe URL op en of de uitvoering van de huidige pagina moet worden beëindigd. |
Redirect(String)
Hiermee wordt een aanvraag omgeleid naar een nieuwe URL en wordt de nieuwe URL opgegeven.
public:
void Redirect(System::String ^ url);
public void Redirect(string url);
member this.Redirect : string -> unit
Public Sub Redirect (url As String)
Parameters
- url
- String
De doellocatie. Dit kan een virtueel toepassingsverwant pad zijn.
Uitzonderingen
Er wordt een omleiding uitgevoerd nadat de HTTP-headers zijn verzonden.
Voorbeelden
In het volgende voorbeeld wordt een onvoorwaardelijke omleiding naar een andere website gedwongen.
Response.Redirect("http://www.microsoft.com/gohere/look.htm");
Response.Redirect("http://www.microsoft.com/gohere/look.htm")
Opmerkingen
Aanroepen is gelijk aan het aanroepen RedirectRedirect met de tweede parameter die is ingesteld op true.
Redirect aanroepen End die een ThreadAbortException uitzondering genereert na voltooiing. Deze uitzondering heeft een nadelig effect op de prestaties van webtoepassingen. Daarom raden we u aan om in plaats van deze overbelasting de HttpResponse.Redirect(String, Boolean) overbelasting te gebruiken en door te geven false voor de endResponse parameter en vervolgens de CompleteRequest methode aan te roepen. Zie de End methode voor meer informatie.
Note
Alleen voor mobiele pagina's kan het gebruik van een tilde (~) in een pad ertoe leiden dat er een nieuwe sessie wordt gemaakt en mogelijk aanvragen worden ontvangen van mobiele apparaten waarvoor cookieloze sessies zijn vereist. Als u een tilde (~) in een pad gebruikt, kan dit leiden tot het maken van een nieuwe sessie en mogelijk verlies van sessiegegevens. Als u een eigenschap wilt instellen op een mobiel besturingselement met een pad zoals ~/path, moet u het pad oplossen met behulp van ResolveUrl ~/path voordat u het toewijst aan de eigenschap.
ASP.NET voert de omleiding uit door een HTTP-statuscode van 302 te retourneren. Een alternatieve manier om het besturingselement over te dragen naar een andere pagina is de Transfer methode. De Transfer methode is doorgaans efficiënter omdat deze geen retour naar de client veroorzaakt. Zie Instructies voor meer informatie : Gebruikers omleiden naar een andere pagina.
Van toepassing op
Redirect(String, Boolean)
Leidt een client om naar een nieuwe URL. Hiermee geeft u de nieuwe URL op en of de uitvoering van de huidige pagina moet worden beëindigd.
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)
Parameters
- url
- String
De locatie van het doel.
- endResponse
- Boolean
Geeft aan of de uitvoering van de huidige pagina moet worden beëindigd.
Uitzonderingen
url is null.
url bevat een nieuw regelteken.
Er wordt een omleiding uitgevoerd nadat de HTTP-headers zijn verzonden.
De paginaaanvraag is het resultaat van een callback.
Voorbeelden
In het volgende voorbeeld wordt de IsClientConnected eigenschap gebruikt om te controleren of de client die de pagina aanvraagt, verbonden blijft met de server. Als IsClientConnected dit waar is, roept de code de Redirect methode aan en bekijkt de client een andere pagina. Als IsClientConnected dit onwaar is, roept de code de End methode aan en wordt alle paginaverwerking beëindigd.
<%@ 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>
Opmerkingen
Een absolute URL (bijvoorbeeld http://www.contoso.com/default.aspx) of een relatieve URL (bijvoorbeeld Default.aspx) kan worden opgegeven voor de doellocatie, maar sommige browsers kunnen een relatieve URL weigeren.
Wanneer u deze methode in een pagina-handler gebruikt om een aanvraag voor één pagina te beëindigen en een nieuwe aanvraag voor een andere pagina te starten, stelt u deze in endResponsefalse en roept u de CompleteRequest methode aan. Als u opgeeft true voor de endResponse parameter, roept deze methode de End methode aan voor de oorspronkelijke aanvraag, waardoor er een ThreadAbortException uitzondering wordt gegenereerd wanneer deze is voltooid. Deze uitzondering heeft een nadelig effect op de prestaties van webtoepassingen. Daarom wordt het doorgeven false van de endResponse parameter aanbevolen. Zie de End methode voor meer informatie.
Note
Als uw toepassing afhankelijk is van cookieloze sessies of aanvragen kan ontvangen van mobiele apparaten waarvoor cookieloze sessies zijn vereist, kan het gebruik van een tilde (~) in een pad een nieuwe sessie maken en mogelijk sessiegegevens verliezen. Als u een eigenschap wilt instellen op een mobiel besturingselement met een pad zoals ~/path, moet u het pad oplossen met behulp van ResolveUrl ~/path voordat u het toewijst aan de eigenschap.
ASP.NET voert de omleiding uit door een HTTP-statuscode van 302 te retourneren. Een alternatieve manier om het besturingselement over te dragen naar een andere pagina is de Transfer methode. De Transfer methode is doorgaans efficiënter omdat deze geen retour naar de client veroorzaakt. Zie Instructies voor meer informatie : Gebruikers omleiden naar een andere pagina.