3

我试试这段代码

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

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

4

2 回答 2

3

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

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

用于从缓存中删除项目。有 Html.Action 重载带有您添加的参数以强制甜甜圈洞(因此排除缓存)

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

上面的 true 意味着“不要缓存这个子动作 - 创建一个甜甜圈洞”

于 2012-09-27T03:20:29.327 回答
3

如果接受清除所有 chid 操作的输出缓存,这是一种方法:

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

NewRandomStringNameToClearTheCache应该是一个随机字符串。

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

于 2013-12-10T16:57:10.937 回答