3

据我了解,Response.Redirect("http://stackoverflow.com");告诉浏览器向另一个 URL 发起请求。

这样做的结果之一是浏览器“记住”重定向,并允许按“返回”。

但是,我有一个网站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. 关于“禁用按下浏览器的‘后退’按钮的能力”,我的意思是无法按下该按钮。与打开新窗口时相同。该按钮是灰色的,单击它绝对没有效果。

更新 2

这已经用 IE6 和 IE8 测试过了。

4

2 回答 2

0

问题不在于Response.Redirect();.

当我在 OldPage.aspx 上时,我在地址栏中输入了一个新 URL。一旦浏览器加载了新站点,它就会禁用后退按钮。

结论:OldPage.aspx 有问题,而不是重定向到 NewPage.aspx。

我仍然不知道为什么会发生这种情况,但这是一个完全不同的问题。

于 2012-05-03T06:44:06.493 回答
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.
        }
    }
于 2012-05-03T07:14:24.363 回答