Asp.net mvc MVC 4.0使用HttpResponse.RemoveOutputCacheItem清除输出缓存

Asp.net mvc MVC 4.0使用HttpResponse.RemoveOutputCacheItem清除输出缓存,asp.net-mvc,asp.net-mvc-4,caching,Asp.net Mvc,Asp.net Mvc 4,Caching,我正在尝试在MVC4.0ASP.net应用程序中实现缓存。我可以使用outputcache进行缓存 [OutputCache (Duration=60)] public ActionResult myaction(string parm1) { --logic to construct the model object -- followed by this return statement return PartialView(model); } 但我需要在编

我正在尝试在MVC4.0ASP.net应用程序中实现缓存。我可以使用outputcache进行缓存

[OutputCache (Duration=60)]
public ActionResult myaction(string parm1)
{
     --logic to construct the model object
     -- followed by this return statement

     return PartialView(model);
}
但我需要在编辑存储在xml文件中的数据后清除缓存

所以我试着加上

HttpResponse.RemoveOutputCacheItem(Url.Action("myaction", "myController"));
在调用
return RedirectToAction(myaction)之前的同一控制器的另一个操作中

但是缓存没有被重置

这是使用操作刷新outputcache的方法吗?我使用ajax从jquery调用这些操作

改用。
OutputCache
对您所能做的非常有限

一旦需要更改缓存的数据,可以使用
ICacheProvider
使该特定数据无效,而使用
OutputCache
,则可以缓存整个
ActionResult
或不缓存任何数据


另外,
OutputCache
既没有
ICacheProvider
所具有的灵活性,也没有使用它的美感。

您可能将输出缓存在用户的机器上,而不是服务器上。请尝试指定位置:

[OutputCache(Location= System.Web.UI.OutputCacheLocation.Server, Duration=60]

否则,缓存删除将不起作用,因为您已将HTML输出缓存在用户的计算机上

ASP.NET MVC支持圆环孔缓存,但不支持圆环孔缓存。可以缓存局部视图并排除父视图,但不能缓存父视图并排除局部视图。编写用于缓存的自定义筛选器或使用

谢谢。我能够通过ICacheProvider将缓存添加到我的应用程序中;但我也希望能够清除整个缓存,而不仅仅是使用密钥清除缓存中的一个条目。我想不出一个循环缓存的方法;是否可以通过循环对象缓存/内存缓存来清除整个缓存?感谢Jason的快速响应;我也尝试过添加位置,但也没有成功。