2009-07-27 18 views
15

ここにはいくつかの同様の質問が掲載されていますが、本当に私のニーズに対応しているものはありません。戻るボタンの更新ページ

私は1ページに項目のリストがあり、それをmasterlist.aspxと呼ぶことができます。これらのリスト項目をクリックすると、別のページ、すなわちdetails.aspx?id = somethingが表示されます。

表示されるページには、編集モードのformviewコントロールがあります。ユーザーがデータを編集したい場合、編集リンクボタンをクリックし、フォームを編集モードにしてデータを編集し、保存ボタンをクリックしてデータを保存し、フォームビューをビューモードに戻します。

問題は、ブラウザの戻るボタンを使用してmasterlist.aspxページに戻ったときにページが更新されず、ブラウザのキャッシュから取り出される場合です。

私はHTTPヘッダーのキャッシュ設定で遊んでいますが、すべての主要なブラウザで動作するものは得られません。一部のブラウザでは、Webページの警告が切れてしまいます。もう1つの選択肢は、クライアントサイドコードを使用してページが読み込まれたときに何らかの方法でページのリフレッシュ(または部分的なページのリフレッシュ)をトリガーすることですが、これを行う方法を理解できませんでした。

上記の2つの方法で成功した人がいるか、問題を完全に回避する方法がありますか。

+0

これは、ASP.netがページ全体を含むPOSTフォームを使用しているためです。私はこれを修正する方法を知らないが、それはあなたを助けるかもしれない。 –

答えて

31

製品ページをヒットしたときに、更新情報を取得するために第三者に呼び出してから保存するため、参照ページをDBからロードする必要があるカタログでこれを行う必要があります更新する必要がある場合これは、データがリロードされたと言っているように、戻るボタンを押すとそうです。私がやったことは、このページに追加され、すべてのブラウザで正常に動作するようです。

public class ProductBrowser : Page 
{ 
    protected override void OnInit(EventArgs e) 
    { 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     Response.Cache.SetNoStore(); 
     Response.Cache.SetExpires(DateTime.MinValue); 

     base.OnInit(e); 
    } 
} 
+0

は私の同僚のクロムで働いていました。つまり、6度です。 – Merritt

+0

ありがとうございます。 FirefoxとIE9でも動作します。 – penderi

0

バックボタンのキー押しイベントをキャプチャすると、browser.history.back()を許可するのではなく、document.location(...)呼び出しを行うことができます。

また、バックイベントをキャプチャしてポストバックをトリガすることもできます。これによりResponse.Redirect(「yourpage」)を実行できます。これにより、ブラウザは指定されたページに対してGET文を発行し、それを更新させます。

0

Javascriptでは完全な解決策が得られない可能性がありますが、回避策があります。

http://www.boutell.com/newfaq/creating/backbutton.html

それは繰り返し「フォワード」アクションを実行するためにブラウザを強制的にタイムアウト機能を使用しています。誰かがBackボタンをクリックしても、実際のページに戻り、Back操作が無効になります。それはちらつきを引き起こすかもしれません。

+0

ページにフォーム要素(ログインフォームなど)がある場合は、この方法に注意してください。ユーザーがフィールドに入力している間、ページを更新する可能性があります。 –

0

私はHTTPヘッダーのキャッシュ設定で遊んでいますが、すべての主要なブラウザで動作するものは得られません。一部のブラウザでは、Webページの警告が切れてしまいます。

どのようにそのマスターリストのページに移動しますか? HTTP GET を発行してクライアントとプロキシにキャッシュされないようにした場合、そのクライアントに戻ってナビゲートしても問題はありません。

これにより、サーバーサイドキャッシング(これらのアイテムのいずれかが変更されたときに適切な無効化が行われる)またはキャッシングがまったく行われなくなります。

関連する問題