如何检测是否按下了刷新按钮(F5)

我有以下代码

protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //do something } else { // do something else } } protected void Button1_Click(object sender, EventArgs e) { //do something } } 

关键是如果我按下F5 /刷新按钮或点击按钮就会发生回发。 如果单击F5 /刷新按钮,我将如何阻止代码执行任何操作?

我已经检查了检测F5被按下和刷新但我的解决方案将是不同的,因为我需要在C#代码中执行此操作。

谢谢

您正在尝试捕获客户端上的内容 – 因此它必须是客户端脚本(如链接中所述)。

这不是ASP.Net术语中的回发 – 只是再次请求您的页面(GET)。 你不能阻止它 – 就像去你网站上的其他页面并点击一些导航一样。

如果您要阻止某些类型的服务器端代码运行(超过x次),那么您可以考虑会话或cookie并在运行任何进程之前读取它们。 一个简单的样本:

  • 访问第1页 – 设置标识第1页进程的会话或cookie
  • 访问第2页 – 设置标识第2页进程的会话或cookie
  • 返回第1页 – 检查是否存在session或cookie变量,如果存在,则不要运行第1页进程。

另一种选择,如果可行,则使用ASP.Net缓存。