2012-05-01 121 views
2

據我所知,Response.Redirect("http://stackoverflow.com");告訴瀏覽器發起對另一個URL的請求。Response.Redirect()禁用後退按鈕

一個這樣做的結果是,瀏覽器會「記住」重定向,並允許按「背」。

不過,我有一個網站,Response.Redirect禁用按瀏覽器的「後退」按鈕,如果瀏覽器打開了一個新窗口的能力。 (瀏覽歷史是不能忘記的,不像Server.Transfer。)

用於在過去正常工作的重定向,所以我懷疑這個問題有什麼做的IIS服務器(IIS7)。

我提前道歉,如果這個問題應該移到ServerFault.com

最新通報

  1. 下面是一些代碼:

    protected void btnClickMe_Click(object sender, EventArgs e) 
    { 
        // ... 
        // some server-side logic 
        // ... 
    
        Response.Redirect("NewPage.aspx?ProductID=" + idNum); 
    } 
    
  2. 關於 「禁用按瀏覽器的 '後退' 按鈕的能力」,我的意思是,該按鈕不能被按下。與您打開新窗口時相同。該按鈕是灰色的,點擊它完全沒有影響。

UPDATE 2

這已經過測試與IE6和IE8。

+2

的Response.Redirect沒有這種效果。我們能看到一些代碼嗎? –

+0

如果你在另一個網站重定向,那麼它將創建新的會話 –

+0

請詳細說明部分*禁用按下瀏覽器的「返回」按鈕的能力* - 當你這樣做時會發生什麼?你到達上一頁? –

回答

0

問題不在於Response.Redirect();

當我在OldPage.aspx上時,我在地址欄中輸入了一個新的URL。一旦瀏覽器加載新網站,它將禁用後退按鈕。

結論:有什麼不對的OldPage.aspx,而不是重定向到NewPage.aspx。

我仍然不知道爲什麼發生這種情況,但這是一個完全不同的問題。

0
protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) //check if the webpage is loaded for the first time. 
     { 
      ViewState["PreviousPage"] = 
     Request.UrlReferrer;//Saves the Previous page url in ViewState 
     } 
    } 
    protected void btnBack_Click(object sender, EventArgs e) 
    { 
     if (ViewState["PreviousPage"] != null) //Check if the ViewState 
         //contains Previous page URL 
     { 
      Response.Redirect(ViewState["PreviousPage"].ToString());//Redirect to 
     //Previous page by retrieving the PreviousPage Url from ViewState. 
     } 
    }