2010-11-01 112 views
5

我通過使用Ajax和局部視圖(ASCX) 加載數據的列表,但我有一個問題:我的迴應被緩存。 我嘗試寫Responce.Cache.SetExpires(DateTime.Now.AddDays(-1))ASCX文件,但它沒有幫助asp.net的MVC禁用AJAX緩存

在ASP.NET的WebForms我寫Responce.Cache.SetExpires解決了這個(DateTime.Now.AddDays(-1))代碼隱藏。 所以我想知道我在哪裏可以寫Responce.Cache.SetExpires(DateTime.Now.AddDays(-1))來禁用緩存。

+0

它不應該被緩存,除非你明確告訴它等控制器的動作指令。也許它是瀏覽器?我聽說緩存阿賈克斯得到(但不是職位)。 – RPM1984 2010-11-01 08:36:07

+0

yes頁面被瀏覽器緩存。但使用SetExpires很容易解決。我如何使用MVC設置SetExpires? – takayoshi 2010-11-01 09:17:53

回答

12

使用jQuery?

$.ajax({ 
cache:false, 
... 
}); 

或Controller/Action set OutputCacheAttribute。

OutputCacheAttribute Class (System.Web.Mvc)

+0

OutputCacheAttribute如何幫助禁用緩存? – 2013-05-15 00:21:55

+0

該屬性控制http響應頭(緩存控制,失效等)。 – takepara 2013-05-15 01:53:57

+1

我的意思是這將是很好這裏給一個代碼示例如何使用OutputCacheAttribute爲: [的OutputCache(NoStore = TRUE,持續時間= 0,VaryByParam時= 「*」)] – 2013-05-15 03:00:03

0

您應該使用AJAX的POST到控制器的方法,如果你想從異步服務器加載數據返回JsonResult。

+1

如果你*獲得*數據,你應該*不*使用POST。看在HTTP方法爲CRUD:郵政=創建,獲取=讀,把=更新,刪除=刪除 – 2014-10-15 14:04:13

+0

艾雲的評論是不正確的。 ASP.Net MVC不支持REST操作,使用POST方法檢索基於參數的數據是完全可以接受的。 – dhochee 2016-03-22 20:55:19