C# 使用多个VaryByParam删除OutputCache
我有这样一个动作:C# 使用多个VaryByParam删除OutputCache,c#,asp.net,asp.net-mvc,caching,outputcache,C#,Asp.net,Asp.net Mvc,Caching,Outputcache,我有这样一个动作: [OutputCache(Duration = 3600, Location = OutputCacheLocation.ServerAndClient, VaryByParam = "page;categor;searchString")] public virtual async Task<ActionResult> Index(int? category, int page = 1, string searchString = null)
[OutputCache(Duration = 3600, Location = OutputCacheLocation.ServerAndClient, VaryByParam = "page;categor;searchString")]
public virtual async Task<ActionResult> Index(int? category, int page = 1, string searchString = null)
但为此,我必须与我的数据库建立多个连接,并获取类别、页面,即使我以某种方式获取所有搜索字符串,这仍然会造成太多的麻烦
我的问题是,有没有更好的方法一次删除所有这些缓存
有没有更好的方法一次删除所有这些缓存
我不知道。但您可以删除特定控制器操作方法的缓存项,如下所示(假设控制器名称为controller1
)。取材于
是的,我见过,但据我所知,没有这样的方法;是,一旦持续时间跳闸,它将被清除。
var urls = new List<string>();
foreach (var url in urls)
{
HttpResponse.RemoveOutputCacheItem(url);
}
HttpResponse.RemoveOutputCacheItem(Url.Action("Index", "controller1", new { category = 1234 }));