我有两个页面,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。
更新
我刚刚登陆此链接detect back button click in browser,但它对我不起作用
答案 0 :(得分:0)
请解释您的问题,而不是您的解决方案。由于您将页面的可缓存性设置为无,因此浏览器将仅重新发出对页面的无条件请求。这与点击该页面的链接没有什么不同,并且无法检测到。
如果您的问题是当某人重新访问某个页面时您不知道如何设置表单数据,则可以使用这样的会话(伪造):
if (!String.IsNullOrEmpty(Session["Username"]))
{
UsernameTextbox.Text = Session["Username"];
}
如果要在单击指向该页面的链接时显示清晰表单,可以设置查询参数,如reset=true
,这将清除会话数据并显示空白表单。