如何识别我是否按下IE中的后退按钮?

iJa*_*ade 9 c# browser asp.net

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

我有两个页面,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);
}
Run Code Online (Sandbox Code Playgroud)

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

更新:

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

Cod*_*ter 0

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

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

if (!String.IsNullOrEmpty(Session["Username"]))
{
    UsernameTextbox.Text = Session["Username"];
}
Run Code Online (Sandbox Code Playgroud)

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