0

私は以下のコードを持っています

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 /更新ボタンがクリックされた場合にコードがアクションを実行しないようにするにはどうすればよいですか?

Detect F5が押されて更新されていることを確認しましたが、C#コードでこれを行う必要があるため、私の解決策は異なります。

ありがとう

4

1 に答える 1

0

クライアントで何かをキャプチャしようとしているので、それはクライアント側のスクリプトである必要があります(リンクで説明されています)。

これは、ASP.Net用語でのポストバックではありません。ページは単に再度要求されています(GET)。これを止めることはできません。Webサイトの他のページに移動して、ナビゲーションをクリックして戻るのと同じです。

ある種のサーバー側コードが(x回以上)実行されないようにしたい場合は、セッションまたはCookieについて考え、プロセスを実行する前にそれらを読み込むことができます。単純なサンプル:

  • ページ1にアクセス-1ページのプロセスが実行されたことを識別するセッションまたはCookieを設定します
  • 2ページ目にアクセス-2ページ目のプロセスが実行されたことを識別するセッションまたはCookieを設定します
  • 1ページに戻る-セッションまたはCookie変数が存在するかどうかを確認し、存在する場合は1ページのプロセスを実行しないでください。

実行可能な場合の別のオプションは、ASP.Netキャッシングを使用することです。

于 2012-04-13T06:02:22.690 に答える