0

ページを更新すると、最後のイベントも「リロード」されます。たとえば、同じデータをデータベースに挿入しようとします。

どうすればこれを回避できますか? (C# を使用)

4

1 に答える 1

0

最も単純で非常に一般的な解決策は、データベースへの挿入が完了したら、ユーザーを別のページ (「ありがとう」ページなど) にリダイレクトすることです。

Response.Redirect("ThankYou.aspx");

このようにして、ユーザーがページをリロードすると、「ありがとうございました」ページがリロードされ、サーバー上で再度アクションが実行されることはありません。

1 つのページに固執したい場合、問題を処理する別の一般的な方法は、セッション変数を「フラグ」として使用することです。

if (Session["inserted_to_db"] == null)
{
    //insert to database...
    //......
    //......
    Session["inserted_to_db"] = true;
}
else
{
    //already inserted, ignore or throw error
}
于 2012-07-31T07:05:23.633 に答える