如何判断用户是否按下F5刷新我的页面(类似于StackOverflow的实现方式。如果您刷新页面,问题计数器将不会增加)。我已经测试了十几个教程中提到的许多代码片段,但都没有正确工作。
更明确地说,假设我有一个空的Web表单,并且想在客户端检测用户是否按下了F5(导致刷新而不是提交)。我可以使用会话变量,但是如果用户导航到站点的另一页,然后再返回,我希望将其视为新访问,而不是刷新。因此这不是会话范围变量。
谢谢。
更新:我唯一找到的解决方法是从基本页面继承我的页面,像下面这样覆盖加载方法:
在每个页面中,如果我想知道是否进行了刷新:
更明确地说,假设我有一个空的Web表单,并且想在客户端检测用户是否按下了F5(导致刷新而不是提交)。我可以使用会话变量,但是如果用户导航到站点的另一页,然后再返回,我希望将其视为新访问,而不是刷新。因此这不是会话范围变量。
谢谢。
更新:我唯一找到的解决方法是从基本页面继承我的页面,像下面这样覆盖加载方法:
public class PageBase : System.Web.UI.Page
{
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.Session["LastViewedPage"] = Request.RawUrl;
}
}
在每个页面中,如果我想知道是否进行了刷新:
if (this.Session["LastViewedPage"].ToString() == Request.RawUrl)
{
// This is a refresh!
}