2012-09-27 57 views
3

我試試這個代碼如何刪除輸出緩存兒童行動(MVC3)

public ActionResult RemoveCache(Guid product_Id) 
{ 
    var url = Url.Action("ProductPreview", "Common", new { product_Id = product_Id }); 
    HttpResponse.RemoveOutputCacheItem(url); 
    return RedirectToAction("Index"); 
} 

刪除輸出緩存爲孩子的行動,但它不工作。請幫助我,謝謝!

+0

看看這個答案http://stackoverflow.com/a/1169671/1342180 - 特別是有關設置部分'[的OutputCache(位置= OutputCacheLocation.Server,... )[',關於當然被緩存的動作方法。 –

+0

@AlexSchimp - 適用於甜甜圈空洞緩存? –

+0

@AdamTuliper - 我可能誤解了這個問題。我以爲OP希望最初緩存這個動作,並且問以後如何清除它。 –

回答

3

使用MVCDonutCaching NuGet包在:http://mvcdonutcaching.codeplex.com/

見 「用法」 一節在: http://www.devtrends.co.uk/blog/donut-output-caching-in-asp.net-mvc-3

從緩存中刪除項目。有一個PARAM Html.Action重載您添加到強制甜甜圈洞(從而排除緩存)

@Html.Action("Login", "Account", true)

真正的上述表示「不緩存此子操作 - 創建一個甜甜圈洞」

+0

你可以給我一個商店的示例和刪除緩存由甜甜圈緩存兒童行動?非常感謝你! –

+0

我嘗試使用甜甜圈緩存兒童行動。 var cacheManager = new OutputCacheManager(); cacheManager.RemoveItem(「Home」,「List」,new {page = 1}); 刪除緩存,但它不會被刪除!請幫幫我! –

+0

它工作得很好!非常感謝你!但它不適用於某個區域。例如:cacheManager.RemoveItem(「Home」,「List」,new {area =「Forum」,page = 1});不行!你可以幫我嗎?非常感謝你! –