2011-04-12 64 views
2

我正在使用asp.net mvc,並有一個顯示項目和視圖以允許編輯項目的視圖。用戶提交已編輯的項目時,會將其重定向到該項目的視圖。由於正在緩存項目視圖,這些更改在重定向時未反映出來。查看項目頁面也可以內聯編輯,然後提交按鈕使用javascript提交併刷新頁面。編輯和重新顯示內容時強制高速緩存刷新

我注意到,stackoverflow以某種方式使得這項工作,當你編輯一個項目,它重定向到您的更改反映的頁面。他們的緩存設置爲公共,最大年齡= 120,所以我很驚訝瀏覽器不拉本地副本沒有反映的變化...

無論如何,有沒有辦法強制在這些情況下緩存刷新?我寧願不附加一個隨機查詢字符串值,但如果沒有其他方式,我會做。

回答

1

您可以設置緩存控制元標記。把這個在你的腦袋節

<META HTTP-EQUIV="Expires" CONTENT="Tue, 01 Jan 1980 1:00:00 GMT"> 
<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 

http://www.chami.com/tips/internet/113096I.html

或.net方式

<%@ OutputCache Location="None" VaryByParam="None" %> 

http://www.dailycoding.com/Posts/how_not_to_cache_a_page_output_in_aspnet.aspx

+0

這將是對正在顯示該項目的看法?如果可能,我們肯定希望該頁面被緩存,問題在於它已經被緩存並且用戶更新了該項目,它仍然會被緩存。這個解決方案需要完全禁用緩存,這不是我們的視圖項目頁面的選項。 – jjxtra 2011-04-12 01:31:55

+0

聽起來像你需要確保你的頁面顯示正確的數據,而不是舊的數據。如果你保存你的數據。我猜測它仍然會在屏幕上顯示舊數據。如果按Ctrl c F5會發生什麼? – 2011-04-12 02:26:44

+0

ctrl-F5不刷新數據,它將帶回緩存的服務器端副本。如果我將緩存更改爲私有,則ctrl-F5會更新爲最新數據。 – jjxtra 2011-04-12 02:51:40