我對調用HttpResponse.RemoveOutputCacheItem()
提供的粒度有些困惑。我有興趣在動態生成的圖像上執行一些輸出緩存,並且希望至少使用參數來改變輸出緩存(爲了參數的緣故,我們稱它們爲'id'和'size')。使asp.net mvc輸出緩存的部分無效 - 具有不同粒度級別
那麼,例如:
/Image/User?id=1 /Image/User?id=1&size=1 /Image/User?id=1&size=2
會需單獨緩存。
當給定用戶改變他們的圖片時;我想要使該用戶標識的所有輸出緩存項無效(不管大小)。 This question解答了我關於單個特定參數的問題。但是..我會怎麼去沖洗一個用戶的所有緩存響應而不考慮大小參數? (讓我們假設我不會提前知道'大小'的所有可能值)。
我非常喜歡做這樣的事情:
HttpResponse.RemoveOutputCacheItem("/Image/User?id=1&size=*"); //wishful thinking
任何人都可以點我在正確的方向?
編輯
@JcMalta提出了一個可行的解決方案,但我不能找到暴露在輸出緩存項適當的集合。一個可行的解決方案可能包括一個類似於他所建議的操作,如果這存在的地方。
感謝您的答覆; HttpResponse.AddCacheItemDependency對我來說似乎是個不錯的選擇。 – DanP 2010-08-20 11:05:19