如何删除子操作的输出缓存(MVC3)

时间:2012-09-27 00:53:03

标签: asp.net-mvc-3

我试试这段代码

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

删除子操作的输出缓存,但它不起作用。请帮助我,谢谢!

2 个答案:

答案 0 :(得分:3)

使用MVCDonutCaching nuget包:http://mvcdonutcaching.codeplex.com/

请参阅以下标题为“用法”的部分: http://www.devtrends.co.uk/blog/donut-output-caching-in-asp.net-mvc-3

用于从缓存中删除项目。有一个Html.Action重载,你添加一个param来强制圆环孔(从而排除缓存)

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

上述真实意味着'不要缓存此子动作 - 创建一个甜甜圈洞'

答案 1 :(得分:2)

如果接受清除所有chid操作的输出缓存,可以采用以下方法:

OutputCacheAttribute.ChildActionCache = new MemoryCache("NewRandomStringNameToClearTheCache"); 

NewRandomStringNameToClearTheCache应该是随机字符串。

来源参考: http://dotnet.dzone.com/articles/programmatically-clearing-0