2016-07-16 82 views
0

我在MVC應用程序中使用jsonresult類型的outputcaching。輸出緩存 - 不會用varybyparam清除緩存

這裏是我的代碼

[的OutputCache(持續時間= 20的VaryByParam = 「SID」) 公共JsonResult GetListValue(布爾SID)

所以每當值SID得到改變,輸出緩存有變化有了新的價值觀,它根本沒有觸及到這個方法。它不斷提取舊的緩存值。可以幫助我瞭解該方法出了什麼問題。

回答

0

使用VaryByParam的機制專門用於實際原始HTTP請求的querystring或post參數,並且沒有任何URL路由將這個原始請求映射到某個其他窗體上的意識。所以,就你而言,它根本不會看到id或quoteid參數(因爲它們實際上不在原始請求的查詢字符串或帖子中)。但是,它會注意到URL本身(包括名稱在內的任何'?'之前)是不同的,並且對此有所不同。

您可能需要考慮使用VaryByCustom代替。一個例子見here。還有一個非常類似的SO問題示例here