Asp.net mvc MVC 4.0使用HttpResponse.RemoveOutputCacheItem清除输出缓存
我正在尝试在MVC4.0ASP.net应用程序中实现缓存。我可以使用outputcache进行缓存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); } 但我需要在编
[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的快速响应;我也尝试过添加位置,但也没有成功。