9

可能重复:
检测浏览器中的后退按钮单击

我有两页,Page1 和 Page2。通过单击链接从 Page1 移动到 Page2 时,我倾向于存储在 Page2 上单击浏览器后退按钮时恢复 Page1 状态所需的条件。

我正在使用以下函数清除缓存,

protected override void OnInit(EventArgs e)
{
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Cache.SetNoStore();
    Response.Cache.SetExpires(DateTime.MinValue);
    base.OnInit(e);
}

这样我就可以根据 cookie 中存储的条件重新加载页面。但问题是如何确定我是否按下了浏览器后退按钮或菜单链接以进入 Page1。

更新:

我刚刚登陆此链接检测浏览器中的后退按钮单击,但它对我不起作用

4

1 回答 1

0

请解释您的问题,而不是您的解决方案。因为您将页面的可缓存性设置为无,所以浏览器将简单地重新发出对该页面的无条件请求。这与单击该页面的链接没有什么不同,并且不会被检测到。

如果您的问题是当有人重新访问页面时您不知道如何设置表单数据,您可以使用这样的会话(伪):

if (!String.IsNullOrEmpty(Session["Username"]))
{
    UsernameTextbox.Text = Session["Username"];
}

如果您想在单击该页面的链接时显示一个清晰的表单,您可以设置一个查询参数,例如reset=true,这将清除会话数据并显示一个空白表单。

于 2012-12-19T11:12:31.503 回答