我有一个旧应用程序,其中包含许多网络表单。在每一aspx
页上都有一个指定的后退按钮,它将用户带到上一页。所有按钮都将 javascriptonclick
事件设置为history.back()
.
在其中aspx
一页上,后退按钮根本不起作用。我们决定使用一个服务器端按钮来完成同样的事情。按钮的 onclick 事件具有将用户带到上一页的必要代码。
首先我通过以下方式创建了onclick事件,但是后退按钮根本不起作用。当我进入调试模式时,我发现该prevPage
变量保存的是当前页面 URL,而不是前一页面 URL。
private void btnBack_Click(object sender, System.EventArgs e)
{
string prevPage = Request.UrlReferrer.ToString();
Response.Redirect(prevPage);
}
然后我将其更改prevPage
为静态变量,并将其值定义为在if(!IsPostBack)
块内设置。现在后退按钮工作正常。
static string prevPage = string.Empty;
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
prevPage = Request.UrlReferrer.ToString();
}
}
private void btnBack_Click()
{
Response.Redirect(prevPage);
}
我不明白为什么第一次尝试行不通,为什么第二次尝试行不通。
我有一种感觉,这可以解释这个特定页面是否还有其他事情也不会让history.back()
orhistory.go(-1)
工作。
您能否对此提供一些见解?
编辑:我使用的是 IE8。