2016-01-20 23 views
3

刪除的OutputCache我有一個這樣的動作:多的VaryByParam

[OutputCache(Duration = 3600, Location = OutputCacheLocation.ServerAndClient, VaryByParam = "page;categor;searchString")] 
    public virtual async Task<ActionResult> Index(int? category, int page = 1, string searchString = null) 

這個動作可以有多個緩存的結果。迄今爲止罰款。但是當我發佈新內容時,我想要移除所有這些多重緩存結果。

我知道我可以使用RemoveOutputCacheItem用在foreach左右的URL列表..

var urls = new List<string>(); 
foreach (var url in urls) 
{ 
    HttpResponse.RemoveOutputCacheItem(url); 
} 

但我必須做出幾個連接到我的數據庫並獲取類,網頁即使不知何故我得到所有的搜索字符串,但仍然造成太多麻煩。

我的問題是,有沒有更好的方法來一次刪除所有這些緩存?

回答

1

有沒有更好的方式來刪除所有這些緩存一次

不,我知道了。但是您可以刪除像下面這樣的特定控制器操作方法的緩存項目(假設您的控制器名稱爲controller1)。從Clearing the ASP.Net MVC Cache

HttpResponse.RemoveOutputCacheItem(Url.Action("Index", "controller1", new { category = 1234 })); 
+0

OP採取的想法要清除所有的URL緩存一次 –

+0

是已經看到,但每次我所知,沒有這樣的辦法;是的,一旦持續時間脫離,它將被清除。 – Rahul

相關問題