HttpResponse.Redirect Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Átirányítja az ügyfelet egy új URL-címre.
Túlterhelések
| Name | Description |
|---|---|
| Redirect(String) |
Átirányít egy kérést egy új URL-címre, és megadja az új URL-címet. |
| Redirect(String, Boolean) |
Átirányítja az ügyfelet egy új URL-címre. Megadja az új URL-címet, és azt, hogy az aktuális lap végrehajtása leáll-e. |
Redirect(String)
Átirányít egy kérést egy új URL-címre, és megadja az új URL-címet.
public:
void Redirect(System::String ^ url);
public void Redirect(string url);
member this.Redirect : string -> unit
Public Sub Redirect (url As String)
Paraméterek
- url
- String
A célhely. Ez lehet alkalmazás-relatív virtuális elérési út.
Kivételek
A HTTP-fejlécek elküldése után a rendszer átirányítást kísérel meg.
Példák
Az alábbi példa feltétel nélküli átirányítást kényszerít egy másik webhelyre.
Response.Redirect("http://www.microsoft.com/gohere/look.htm");
Response.Redirect("http://www.microsoft.com/gohere/look.htm")
Megjegyzések
A hívás Redirect egyenértékű a második paraméterrel beállított Redirecthívássaltrue.
Redirect hívások End , amelyek kivételt ThreadAbortException eredményeznek a befejezéskor. Ez a kivétel káros hatással van a webalkalmazás teljesítményére. Ezért azt javasoljuk, hogy a túlterhelés helyett használja a HttpResponse.Redirect(String, Boolean) túlterhelést, és adja át false a endResponse paramétert, majd hívja meg a metódust CompleteRequest . További információkért tekintse meg a metódust End .
Note
Csak mobiloldalak esetén, ha az alkalmazás cookie nélküli munkamenetekre támaszkodik, vagy olyan mobileszközöktől érkező kéréseket fogad, amelyek cookie nélküli munkameneteket igényelnek, egy elérési út tilde (~) használatával új munkamenetet hozhat létre, és potenciálisan elveszítheti a munkamenet-adatokat. Ha egy olyan tulajdonságot szeretne beállítani egy mobilvezérlőn, amelynek elérési útja például "~/path", oldja fel az elérési utat a "~/path" paranccsal ResolveUrl , mielőtt hozzá szeretné rendelni a tulajdonsághoz.
ASP.NET 302 HTTP-állapotkód visszaadásával hajtja végre az átirányítást. A vezérlőelem másik lapra való átvitelének másik módja a Transfer módszer. A Transfer módszer általában hatékonyabb, mert nem okoz oda-vissza utazást az ügyfélhez. További információ : Útmutató: Felhasználók átirányítása másik lapra.
A következőre érvényes:
Redirect(String, Boolean)
Átirányítja az ügyfelet egy új URL-címre. Megadja az új URL-címet, és azt, hogy az aktuális lap végrehajtása leáll-e.
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)
Paraméterek
- url
- String
A cél helye.
- endResponse
- Boolean
Azt jelzi, hogy az aktuális lap végrehajtása leáll-e.
Kivételek
url az null.
url új karaktert tartalmaz.
A HTTP-fejlécek elküldése után a rendszer átirányítást kísérel meg.
Az oldalkérés egy visszahívás eredménye.
Példák
Az alábbi példa a IsClientConnected tulajdonság használatával ellenőrzi, hogy az oldalt kérő ügyfél csatlakozik-e a kiszolgálóhoz. Ha IsClientConnected igaz, a kód meghívja a metódust Redirect , és az ügyfél egy másik lapot fog megtekinteni. Ha IsClientConnected hamis, akkor a kód meghívja a metódust End , és az összes lapfeldolgozás leáll.
<%@ 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>
Megjegyzések
A célhelyhez megadhat egy abszolút URL-címet (például http://www.contoso.com/default.aspx) vagy egy relatív URL-címet (például Default.aspx), de egyes böngészők elutasíthatnak egy relatív URL-címet.
Ha ezt a módszert használja egy lapkezelőben az egyik lapra vonatkozó kérés leállításához és egy másik lap új kérésének elindításához, állítsa be endResponse a metódustfalse, majd hívja meg.CompleteRequest Ha true megadja a paramétert, ez a endResponse metódus meghívja az End eredeti kérés metódusát, ami kivételt ThreadAbortException eredményez a befejezéskor. Ez a kivétel káros hatással van a webalkalmazás teljesítményére, ezért a paraméter átadását falseendResponse javasoljuk. További információkért tekintse meg a metódust End .
Note
Mobiloldalak esetén, ha az alkalmazás cookie nélküli munkamenetekre támaszkodik, vagy olyan mobileszközöktől érkező kéréseket fogad, amelyek cookie nélküli munkameneteket igényelnek, egy elérési út tilde (~) használatával létrehozhat egy új munkamenetet, és elveszítheti a munkamenet-adatokat. Ha egy olyan tulajdonságot szeretne beállítani egy mobilvezérlőn, amelynek elérési útja például "~/path", oldja fel az elérési utat a "~/path" paranccsal ResolveUrl , mielőtt hozzá szeretné rendelni a tulajdonsághoz.
ASP.NET 302 HTTP-állapotkód visszaadásával hajtja végre az átirányítást. A vezérlőelem másik lapra való átvitelének másik módja a Transfer módszer. A Transfer módszer általában hatékonyabb, mert nem okoz oda-vissza utazást az ügyfélhez. További információ : Útmutató: Felhasználók átirányítása másik lapra.