C# 如何检测是否按下了刷新按钮(F5)
我有下面的代码C# 如何检测是否按下了刷新按钮(F5),c#,asp.net,C#,Asp.net,我有下面的代码 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //do something } else { // do something else } } protected void Button1_Click(objec
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/刷新按钮,我将如何防止代码执行任何操作
我已经检查过了,但我的解决方案会有所不同,因为我需要在C#代码中执行此操作
谢谢您正试图在客户端捕获某些内容-因此它必须是客户端脚本(如链接中所述) 它不是ASP.Net术语中的回发-您的页面只是再次被请求(GET)。你无法阻止这一点——这就像转到网站上的其他页面,然后通过一些导航单击“上一步” 如果您说要防止运行某些类型的服务器端代码(超过x次),那么您可以考虑会话或cookie,并在运行任何进程之前读取它们。一个简单的例子:
- 访问第1页-设置标识第1页进程已运行的会话或cookie
- 访问第2页-设置识别第2页进程运行的会话或cookie
- 返回到第1页-检查会话或cookie变量是否存在,若存在,则不要运行第1页进程
如果可行,另一种选择是使用ASP.Net缓存。您无法检测页面是否已刷新。顺便问一句,为什么需要这样做?你想解决的第一个问题是什么?@zerkms是的,你可以,但它需要很多代码。@Aristos:有详细信息吗?请记住,再次关闭和打开并不会让人耳目一新。那么?@zerkms我制作了一个基于idea的版本:如果用户已经按下提交按钮一次(导致回发),然后再执行F5,服务器会认为这是另一次回发。我想这就是OP想要解决的问题。请参考@MrLister-同样的故事,它可以是GET或POST-我在ASP.Net中更具体地描述了postback一词(OP的帖子中对此不清楚)。参见Sunil Chavan的链接以获取灵感。