単純なASP.NETアプリケーションに問題があり、ポストバック後に戻るボタンがあります。ASP.NETブラウザは、「戻る」ボタンの後に「Webページが期限切れになっています」と表示します。
問題のページは単純なフォーム、テキストフィールドなど、ポストバック(自動ポストバック)を行うドロップダウンがあります。
「通常の」フローは、フォームを入力してドロップダウンを変更する場合があります。ドロップダウン値に基づいて、ページの内容が変更される可能性があります。
問題は、ユーザーがドロップダウンを変更してポストバックが完了した後、ユーザーが戻るボタンをクリックしたことです。彼らは、IEからの "Webページが期限切れになっています"というメッセージを見ます。
私は次のように設定しました:
Response.Cache.SetExpires(DateTime.Now.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.Private);
をしかし、それは問題を釘付けしているようには見えません。プライベート、キャッシュなし::
実際のCache-Controlレスポンス・ヘッダーは、として読み込むだけで「プライベート」のバックボタンののCache-Controlレスポンス・ヘッダーを持つ古典的なASPアプリケーションで
「-クッキーを設定します」 「ポストバック」の後に期待どおりに動作します。
ASP.NETがキャッシュコントロールを明示的に「プライベート」に明示的に設定するよう強制する必要はありますか?または、戻るボタンとポストバックがうまく連携している他のソリューションですか?
ありがとうございます!
、キャッシュ制御のプライベートバックをすることができます"期待どおりに"ボタンの動作が有効になりますが、有効期限が-1分に設定され、キャッシュ制御が "private、no-cache:set cookie"に設定されているASP.NETアプリケーションは動作しません。これは私にとっては「no-cache:set cookie」を問題としているようです。 – user505765
私は理解しています。違いは、Classic ASPに対抗するポストバックがないことです。ボタンをクリックすると、フォームの「アクション」がトリガーされ、毎回新しいページロードとなります。 ASP.NETでは、ドロップダウンリストを変更し、そのドロップダウンリストに「autopostback」がtrueに設定されている場合、ブラウザは実際にこれを新しいページのナビゲーションとして認識します。ポストバックがどのように実装されているのかはまったく同じです。このようなケースでは、常時irtritationのソースです。技術的には、自動ポストバック用のドロップダウンセットを変更すると、フォームに「投稿」オプションが表示されますが、Webフォームのパラダイムではそれがぼやけてしまいます。 – David
おそらく、これがより良い説明です - ブラウザには、 WebFormsのパラダイムが開発者にとってそうでないように見せかけたとしても、それは歴史に保存されています。 – David