2012-05-01 93 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. 
     } 
    }