据我了解,Response.Redirect("http://stackoverflow.com");
告诉浏览器向另一个网址发起请求。
其中一个结果是浏览器“记住”重定向,并允许按“返回”。
但是,我有一个网站,其中Response.Redirect
禁用了按下浏览器的“后退”按钮的功能,就像浏览器打开了一个新窗口一样。 (与Server.Transfer
不同,不会忘记浏览历史记录。)
重定向过去曾经正常工作,所以我怀疑这个问题与IIS服务器(IIS7)有关。
如果将此问题移至ServerFault.com,我会提前道歉。
更新:
以下是一些代码:
protected void btnClickMe_Click(object sender, EventArgs e)
{
// ...
// some server-side logic
// ...
Response.Redirect("NewPage.aspx?ProductID=" + idNum);
}
关于“禁用按下浏览器的”后退“按钮的功能”,我的意思是按钮无法按下。与打开新窗口时相同。按钮是灰色的,单击它完全没有效果。
更新2 :
已经使用IE6和IE8进行了测试。
答案 0 :(得分:0)
问题不在于Response.Redirect();
。
当我在OldPage.aspx上时,我在地址栏中输入了一个新URL。浏览器加载新网站后,它会禁用后退按钮。
结论:OldPage.aspx有问题,而不是重定向到NewPage.aspx。
我仍然不知道为什么会这样,但这是一个完全不同的问题。
答案 1 :(得分: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.
}
}