2009-05-07 15 views
14

私はサーバからリロードすることができないページで更新パネルを使用しているasp.netウェブサイトを持っています。私はマスターページ上の無効ページキャッシュにこれを持っています。ページキャッシュを無効にして、ブラウザのバックボタンでページを強制的に読み込みます。

 Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)) 
    Response.Cache.SetValidUntilExpires(False) 
    Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches) 
    Response.Cache.SetCacheability(HttpCacheability.NoCache) 
    Response.Cache.SetNoStore() 

ブラウザの戻るボタンをクリックしてページに戻ると、そのページの有効期限が切れていると表示されます。私のウェブサイト上の他のページが動作し、ページの読み込みを呼び出す、唯一の解決策は私が見つけたが、使用することはできません更新パネルの全体のページをwrpですが、私はページ上のレポートビューアを持っているので、 ajaxでは動作しません。もし誰かが私が深くそれを感謝するのを助けることができます。

+1

ブラウザからの期限切れのページメッセージは、ポストバックデータが送信されたことを意味します。いくつかのブラウザは、彼らがそれを再送信したい場合は、いくつかは尋ねないユーザーに尋ねます。 – jor

答えて

0

ただ、ヘッダ部に、あなたのビューファイルでこれを追加します。

<head> 
<script language="JavaScript"> 
<!-- 
javascript:window.history.forward(1); 
//--> 
</script> 
</head> 

bodyタグの中には、これを追加します。

<body onUnload="OperaReload()"> 
<input type="hidden" id="refreshed" value="no"> 
0

次を使用JavaScriptでページをリロードするには:

window.location.replace(window.location.pathname); 
1

これはブラウザキャッシュの問題ではありません。それはポストバックです。 「投稿しますか?ページが期限切れですか?」というメッセージを避けるために、Post/Redirect/Getパターンを実装する必要があります。

http://en.wikipedia.org/wiki/Post/Redirect/Get

Webページがデータベースに何かを挿入し、保存ボタンを持っていたときにこの事のための古典的な例です。 "保存"ボタンがクリックされた - >ポストバックが発生 - >コードは、行をテーブルに挿入 - >ユーザーがページをリフレッシュする(F5) - >ポストバックが再び発生 - >コードは同じ行を再度挿入します。

上記の例で2重挿入を避けるには、「保存」ボタンを押したときにリダイレクトしてから挿入を実行する必要があります。

関連する問題