C# でクリック イベントを持つボタンがあります。これはうまくいきます。ただし、F5 キーを押してページを更新した後、ボタン イベントが発生することに気付きました。これは、F5 をクリックするたびに発生します。if(page.IsPostBack) を追加しましたが、メソッドは引き続き実行されます。
F5 Refresh ボタンがクリックされたときにこのメソッドが起動しないようにする方法はありますか?
ありがとう!
C# でクリック イベントを持つボタンがあります。これはうまくいきます。ただし、F5 キーを押してページを更新した後、ボタン イベントが発生することに気付きました。これは、F5 をクリックするたびに発生します。if(page.IsPostBack) を追加しましたが、メソッドは引き続き実行されます。
F5 Refresh ボタンがクリックされたときにこのメソッドが起動しないようにする方法はありますか?
ありがとう!
Response.Redirect("Your page ")
追加/更新コードの後に使用してみてください。良い習慣ではありませんが、役に立ちます。
if(!page.IsPostBack)
NOT if(page.IsPostBack)
とんでもない。更新後にボタンをクリック(およびデータを投稿)すると、同じデータが送信されます。
一度実行する必要があるページがある場合は、同じメソッドが複数回実行されないようにするロジックをコードに実装する必要があります。擬似コード:
if (canExecuteMethod()) {
executeMethod();
} else {
displayMessageThatMethodCannotBeExecuted();
}
たとえば、セッション変数を で確認できます。この変数canExecuteMethod()
が存在せず、 で設定されている場合は false を返しますexecuteMethod()
。
function canExecuteMethod() {
return Session["methodIsExecuting"] == null
|| Session["methodIsExecuting"] == false;
}
function executeMethod() {
Session["methodIsExecuting"] = true;
// ...
}
もちろん、セッション変数の使用には制限があるため、代わりにデータベースまたは AppSettings 変数の使用を検討することをお勧めします。