Aracılığıyla paylaş


HttpResponse.Redirect Yöntem

Tanım

İ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 Redirecttrueeş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 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 zararlı bir etkisi vardır, bu nedenle parametresi için geçişin falseendResponse 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.

Şunlara uygulanır