我对ASP.NET MVC 5中的缓存有疑问。 我有一个用OutputCacheAttribute修饰的动作。 这样的事情: OutputCache(持续时间= 900,位置=服务器,VaryByParam =" id")
在我的应用程序的某个地方,我想管理缓存并删除它们。 我使用了Response.RemoveOutputCacheItem(Url.Action(" Index"," Home"))删除了一个动作的所有缓存,但它没有用。
HttpResponse.RemoveOutputCacheItem()方法适用于带参数的操作,但我想清除没有参数的操作的所有输出缓存。
例如:
控制器:
[OutputCache(Duration = 900, VaryByParam = "*")]
public ActionResult About(int id)
{
return View();
}
路由:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
通过以下代码删除:
var x = Url.Action("About", "Home");
Response.RemoveOutputCacheItem(x);