我有一个旧应用程序,其中包含许多网络表单。在每一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。