Aracılığıyla paylaş


HttpResponse.Redirect Yöntem

Tanım

İstemciyi yeni bir URL'ye yönlendirir.

Aşırı Yüklemeler

Name Description
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 sanal bir yol olabilir.

Özel durumlar

HTTP üst bilgileri gönderildikten sonra yeniden yönlendirme denendi.

Örnekler

Aşağıdaki örnek, koşulsuz bir 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ı Redirect , ikinci parametre olarak ayarlanmış çağrıya Redirecttrueeşdeğerdir.

Redirecttamamlandıktan sonra bir ThreadAbortException özel durum oluşturan çağrılarEnd. Bu özel durumun Web uygulaması performansı üzerinde zarar verici bir etkisi vardır. Bu nedenle, bu aşırı yükleme yerine parametresi için endResponse aşırı yüklemeyi kullanmanızı HttpResponse.Redirect(String, Boolean) ve geçirmenizi false ve ardından yöntemini çağırmanızı CompleteRequest öneririz. Daha fazla bilgi için bkz. End yöntemi.

Uyarı

Yalnızca mobil sayfalar için, uygulamanız tanımlama bilgisiz oturumları kullanıyorsa veya mobil cihazlardan tanımlama bilgisi olmayan oturumlar gerektiren istekler alabiliyorsa, 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 yolu "~/path" kullanarak ResolveUrl çözün.

ASP.NET 302 HTTP durum kodu döndürerek yeniden yönlendirme 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'e eşittir.

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 sayfa 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 URL (örneğin, http://www.contoso.com/default.aspx) veya göreli URL (örneğin, Default.aspx) belirtilebilir, ancak bazı tarayıcılar göreli URL'yi reddedebilir.

Bir sayfa için 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 endResponsefalse 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 zarar verici bir etkisi vardır, bu nedenle parametresinin endResponse geçirilmesi false önerilir. Daha fazla bilgi için bkz. End yöntemi.

Uyarı

Mobil sayfalar için, uygulamanız tanımlama bilgisiz 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 oturum verilerini kaybetme olasılığına neden olabilir. Mobil denetimde "~/path" gibi bir yol içeren bir özellik ayarlamak için, özelliğine atamadan önce yolu "~/path" kullanarak ResolveUrl çözün.

ASP.NET 302 HTTP durum kodu döndürerek yeniden yönlendirme 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