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