繁体   English   中英

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

[英]How to detect if Refresh button(F5) is pressed

我有以下代码

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页-设置会话或cookie,以标识第2页的进程已运行
  • 返回第1页-检查会话或cookie变量是否存在,如果存在,则不要运行第1页进程。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM