HttpResponse.Redirect Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İstemciyi yeni bir URL'ye yönlendirir.
Aşırı Yüklemeler
Redirect(String) |
İsteği yeni bir URL'ye yönlendirir ve yeni URL'yi belirtir. |
Redirect(String, Boolean) |
İstemciyi yeni bir URL'ye yönlendirir. Yeni URL'yi ve geçerli sayfanın yürütülmesinin sonlandırılıp sonlandırılmayacağını belirtir. |
Redirect(String)
İsteği yeni bir URL'ye yönlendirir ve yeni URL'yi belirtir.
public:
void Redirect(System::String ^ url);
public void Redirect (string url);
member this.Redirect : string -> unit
Public Sub Redirect (url As String)
Parametreler
- url
- String
Hedef konum. Bu, uygulamaya göre bir sanal yol olabilir.
Özel durumlar
HTTP üst bilgileri gönderildikten sonra yeniden yönlendirme denendi.
Örnekler
Aşağıdaki örnek, koşulsuz yeniden yönlendirmeyi başka bir Web sitesine zorlar.
Response.Redirect("http://www.microsoft.com/gohere/look.htm");
Response.Redirect("http://www.microsoft.com/gohere/look.htm")
Açıklamalar
Çağrısı Redirect , ikinci parametre olarak ayarlanmış çağrıya Redirecttrue
eşdeğerdir.
Redirecttamamlandıktan sonra bir ThreadAbortException özel durum oluşturan çağrılarEnd. Bu özel durumun Web uygulaması performansı üzerinde zararlı bir etkisi vardır. Bu nedenle, bu aşırı yükleme yerine parametresi için endResponse
aşırı yüklemeyi ve HttpResponse.Redirect(String, Boolean) geçirmenizi false
ve ardından yöntemini çağırmanızı CompleteRequest öneririz. Daha fazla bilgi için yöntemine End bakın.
Not
Yalnızca mobil sayfalar için, uygulamanız tanımlama bilgisi olmayan oturumlara dayanırsa veya mobil cihazlardan tanımlama bilgisi olmayan oturumlar gerektiren istekler alabilirse, bir yolda tilde (~) kullanmak yeni bir oturum oluşturulmasına ve potansiyel olarak oturum verilerinin kaybolmasına neden olabilir. Mobil denetimde "~/path" gibi bir yol içeren bir özellik ayarlamak için, özelliğine atamadan önce "~/path" kullanarak ResolveUrl yolu çözümleyebilirsiniz.
ASP.NET, 302 HTTP durum kodu döndürerek yeniden yönlendirmeyi gerçekleştirir. Denetimi başka bir sayfaya aktarmanın Transfer alternatif bir yolu yöntemidir. Transfer yöntemi genellikle istemciye gidiş dönüşe neden olmadığından daha verimlidir. Daha fazla bilgi için bkz . Nasıl yapılır: Kullanıcıları Başka Bir Sayfaya Yönlendirme.
Şunlara uygulanır
Redirect(String, Boolean)
İstemciyi yeni bir URL'ye yönlendirir. Yeni URL'yi ve geçerli sayfanın yürütülmesinin sonlandırılıp sonlandırılmayacağını belirtir.
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)
Parametreler
- url
- String
Hedefin konumu.
- endResponse
- Boolean
Geçerli sayfanın yürütülmesinin sonlandırılıp sonlandırılmayacağını gösterir.
Özel durumlar
url
, null
değeridir.
url
yeni satır karakteri içerir.
HTTP üst bilgileri gönderildikten sonra yeniden yönlendirme denendi.
Sayfa isteği geri çağırmanın sonucudur.
Örnekler
Aşağıdaki örnek, sayfayı IsClientConnected isteyen istemcinin sunucuya bağlı kalıp kalmadığını denetlemek için özelliğini kullanır. IsClientConnected True ise, kod yöntemini çağırır Redirect ve istemci başka bir sayfayı görüntüler. false IsClientConnected ise kod yöntemini çağırır End ve tüm sayfa işleme sonlandırılır.
<%@ 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>
Açıklamalar
Hedef konum için mutlak BIR URL (örneğin, http://www.contoso.com/default.aspx
) veya göreli BIR URL (örneğin, Default.aspx) belirtilebilir, ancak bazı tarayıcılar göreli URL'yi reddedebilir.
Bir sayfaya yönelik isteği sonlandırmak ve başka bir sayfa için yeni bir istek başlatmak için bir sayfa işleyicisinde bu yöntemi kullandığınızda, olarak ayarlayın endResponse
false
ve yöntemini çağırın CompleteRequest . parametresini belirtirseniztrue
, bu yöntem özgün istek için yöntemini çağırır End ve tamamlandığında bir ThreadAbortException özel durum endResponse
oluşturur. Bu özel durumun Web uygulaması performansı üzerinde zararlı bir etkisi vardır, bu nedenle parametresi için geçişin false
endResponse
kullanılması önerilir. Daha fazla bilgi için yöntemine End bakın.
Not
Mobil sayfalar için, uygulamanız tanımlama bilgisi olmayan oturumlara dayalıysa veya tanımlama bilgisi olmayan oturumlar gerektiren mobil cihazlardan istekler alıyorsa, bir yolda tilde (~) kullanmak yeni bir oturum oluşturabilir ve potansiyel olarak oturum verilerini kaybedebilir. Mobil denetimde "~/path" gibi bir yol içeren bir özellik ayarlamak için, özelliğine atamadan önce "~/path" kullanarak ResolveUrl yolu çözümleyebilirsiniz.
ASP.NET, 302 HTTP durum kodu döndürerek yeniden yönlendirmeyi gerçekleştirir. Denetimi başka bir sayfaya aktarmanın Transfer alternatif bir yolu yöntemidir. Transfer yöntemi genellikle istemciye gidiş dönüşe neden olmadığından daha verimlidir. Daha fazla bilgi için bkz . Nasıl yapılır: Kullanıcıları Başka Bir Sayfaya Yönlendirme.