我试试这段代码
public ActionResult RemoveCache(Guid product_Id)
{
var url = Url.Action("ProductPreview", "Common", new { product_Id = product_Id });
HttpResponse.RemoveOutputCacheItem(url);
return RedirectToAction("Index");
}
删除子操作的输出缓存,但它不起作用。请帮助我,谢谢!
答案 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