我有一个按钮,在我的C#中有点击事件。这非常有效。然而,按F5刷新页面,我注意到按钮事件被触发。每次单击F5时都会发生这种情况。我添加了if(page.IsPostBack)并且该方法仍在运行。
单击F5刷新按钮时,有没有办法阻止此方法触发?
谢谢!
答案 0 :(得分:1)
尝试在添加/更新代码后使用Response.Redirect("Your page ")
。这不是好习惯,但它会帮助你。
答案 1 :(得分:1)
如果(!page.IsPostBack)
不是if(page.IsPostBack)
答案 2 :(得分:0)
没办法。如果在刷新后单击按钮(并发布数据),则会发出相同的数据。
答案 3 :(得分:0)
如果您有一个需要运行一次的页面,则应在代码中实现逻辑,以防止同一方法多次运行。在伪代码中:
if (canExecuteMethod()) {
executeMethod();
} else {
displayMessageThatMethodCannotBeExecuted();
}
例如,您可以使用canExecuteMethod()
检查会话变量,当该变量不存在且在executeMethod()
中设置时返回false:
function canExecuteMethod() {
return Session["methodIsExecuting"] == null
|| Session["methodIsExecuting"] == false;
}
function executeMethod() {
Session["methodIsExecuting"] = true;
// ...
}
当然,使用Session变量有限制,因此您可能需要考虑使用数据库或AppSettings变量。