2

私は非常に珍しい問題で立ち往生しています。IsPostBackのプロパティをチェックするだけの C# で書かれたコードがありPage_Loadます。IsPostBackページが初めて表示されたときは false のままであり、コントロールがフォームをサーバーに送信した場合にのみ true になることを私は知っています ( runat=sever.

また、更新を実行すると、プロパティが false に変更されることもわかっていIsPostBackます (更新はポストバックではないため)。

サンプルコードは次のとおりです。

if (!IsPostBack)
{
    // If I click on any control on the page, and then hit refresh,
    // the code inside this block should execute, but this is not happening.
    // After first postback, I tried refreshing the page for more than
    // ten times, but always finds IsPostBack=true

    // ...
}
else
{
    // ...
}

サーバー側のボタン (ポストバック) をクリックしてから、更新を押しました。if ブロックに行くと思いますが、うまくいきません。ブラウザで何回 [更新] を押しても、IsPostBack常に true です。これは私が今まで見たことのない、本当に珍しい活動です。

助けていただければ幸いです。なぜこれが起こっているのかを知る必要があります。これはブラウザ関連の問題ですか、それとも何か他の問題ですか? Mozilla と Chrome を使用しました。

更新を押すたびに、両方のブラウザーで警告が表示されます。

  • Chrome の場合: フォームの送信を確認する 入力した情報を探しているページに戻ると、そのページに戻ると、実行した操作が繰り返される可能性があります。続行しますか?

  • mozilla の場合: 確認 このページを表示するには、Firefox はアクションを繰り返す情報を送信する必要があります...

親切な助けを前もってありがとう。

プラヴィーン

4

2 に答える 2

2

投稿後に更新すると、ほとんどのブラウザは同じデータを投稿します。

これは、あなたが見たダイアログの意味です (再投稿するかどうか尋ねられます - [はい] をクリックしてください/[OK] は再投稿を意味します)。

再投稿を避けるには、アドレスバーに移動して Enter キーを押してください。これにより、新しいリクエストが再投稿ではなく問題になります。

于 2012-09-07T11:17:35.610 に答える
1

ブラウザーが表示するダイアログは、ページを取得するだけでなく、ポストバックを行うことを示しています。そして、警告が正確であることをコードで確認できます。元のポストバックで呼び出されたハンドラーは、2 回目に呼び出されます。これは、ポストバックの主な問題の 1 つです。ポストバックは基本的に更新キーを壊します。ページをロードするだけの場合は、マウスをアドレス バーまで上げて Enter キーを押す必要があります。これにより、IsPostback false でページが読み込まれます。

于 2012-09-08T00:08:45.110 に答える