HttpResponse.Redirect Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengalihkan klien ke URL baru.
Overload
Redirect(String) |
Mengalihkan permintaan ke URL baru dan menentukan URL baru. |
Redirect(String, Boolean) |
Mengalihkan klien ke URL baru. Menentukan URL baru dan apakah eksekusi halaman saat ini harus dihentikan. |
Redirect(String)
Mengalihkan permintaan ke URL baru dan menentukan URL baru.
public:
void Redirect(System::String ^ url);
public void Redirect (string url);
member this.Redirect : string -> unit
Public Sub Redirect (url As String)
Parameter
- url
- String
Lokasi target. Ini mungkin jalur virtual relatif aplikasi.
Pengecualian
Pengalihan dicoba setelah header HTTP dikirim.
Contoh
Contoh berikut memaksa pengalihan tanpa syarat ke situs Web lain.
Response.Redirect("http://www.microsoft.com/gohere/look.htm");
Response.Redirect("http://www.microsoft.com/gohere/look.htm")
Keterangan
Redirect Panggilan setara dengan panggilan Redirect dengan parameter kedua yang diatur ke true
.
Redirect
End panggilan yang melemparkan ThreadAbortException pengecualian setelah selesai. Pengecualian ini memiliki efek yang merugikan pada performa aplikasi Web. Oleh karena itu, kami menyarankan agar alih-alih kelebihan beban ini, Anda menggunakan HttpResponse.Redirect(String, Boolean) kelebihan beban dan meneruskan false
endResponse
parameter, lalu memanggil CompleteRequest metode . Untuk informasi lebih lanjut, lihat Endmetodenya.
Catatan
Hanya untuk halaman seluler, jika aplikasi Anda bergantung pada sesi tanpa cookie, atau mungkin menerima permintaan dari perangkat seluler yang memerlukan sesi tanpa cookie, menggunakan tilde (~) di jalur dapat mengakibatkan pembuatan sesi baru dan berpotensi kehilangan data sesi. Untuk mengatur properti pada kontrol seluler dengan jalur seperti "~/path", selesaikan jalur menggunakan ResolveUrl "~/path" sebelum menetapkannya ke properti .
ASP.NET melakukan pengalihan dengan mengembalikan kode status HTTP 302. Cara alternatif untuk mentransfer kontrol ke halaman lain adalah Transfer metode . Metode Transfer ini biasanya lebih efisien karena tidak menyebabkan perjalanan pulang pergi ke klien. Untuk informasi selengkapnya, lihat Cara: Mengalihkan Pengguna ke Halaman Lain.
Berlaku untuk
Redirect(String, Boolean)
Mengalihkan klien ke URL baru. Menentukan URL baru dan apakah eksekusi halaman saat ini harus dihentikan.
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)
Parameter
- url
- String
Lokasi target.
- endResponse
- Boolean
Menunjukkan apakah eksekusi halaman saat ini harus dihentikan.
Pengecualian
url
adalah null
.
url
berisi karakter baris baru.
Pengalihan dicoba setelah header HTTP dikirim.
Permintaan halaman adalah hasil dari panggilan balik.
Contoh
Contoh berikut menggunakan IsClientConnected properti untuk memeriksa apakah klien yang meminta halaman tetap terhubung ke server. Jika IsClientConnected benar, kode memanggil Redirect metode , dan klien akan melihat halaman lain. Jika IsClientConnected salah, maka kode memanggil End metode dan semua pemrosesan halaman dihentikan.
<%@ 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>
Keterangan
URL absolut (misalnya, http://www.contoso.com/default.aspx
) atau URL relatif (misalnya, Default.aspx) dapat ditentukan untuk lokasi target tetapi beberapa browser dapat menolak URL relatif.
Saat Anda menggunakan metode ini dalam penangan halaman untuk mengakhiri permintaan untuk satu halaman dan memulai permintaan baru untuk halaman lain, atur endResponse
ke false
lalu panggil CompleteRequest metode . Jika Anda menentukan true
untuk endResponse
parameter , metode ini memanggil End metode untuk permintaan asli, yang memberikan ThreadAbortException pengecualian saat selesai. Pengecualian ini memiliki efek yang merugikan pada performa aplikasi Web, itulah sebabnya disarankan untuk endResponse
meneruskan false
parameter. Untuk informasi lebih lanjut, lihat Endmetodenya.
Catatan
Untuk halaman seluler, jika aplikasi Anda bergantung pada sesi tanpa cookie, atau mungkin menerima permintaan dari perangkat seluler yang memerlukan sesi tanpa cookie, menggunakan tilde (~) di jalur dapat membuat sesi baru dan berpotensi kehilangan data sesi. Untuk mengatur properti pada kontrol seluler dengan jalur seperti "~/path", selesaikan jalur menggunakan ResolveUrl "~/path" sebelum menetapkannya ke properti .
ASP.NET melakukan pengalihan dengan mengembalikan kode status HTTP 302. Cara alternatif untuk mentransfer kontrol ke halaman lain adalah Transfer metode . Metode Transfer ini biasanya lebih efisien karena tidak menyebabkan perjalanan pulang pergi ke klien. Untuk informasi selengkapnya, lihat Cara: Mengalihkan Pengguna ke Halaman Lain.