首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用多个OutputCache删除VaryByParam

用多个OutputCache删除VaryByParam
EN

Stack Overflow用户
提问于 2016-01-20 12:27:13
回答 1查看 1.1K关注 0票数 4

我有这样的动作:

代码语言:javascript
复制
    [OutputCache(Duration = 3600, Location = OutputCacheLocation.ServerAndClient, VaryByParam = "page;categor;searchString")]
    public virtual async Task<ActionResult> Index(int? category, int page = 1, string searchString = null)

此操作可以具有多个缓存结果。到目前为止还不错。但是当我发布一个新内容时,我喜欢删除所有这些多缓存结果。

我知道我可以把RemoveOutputCacheItem和一个urls列表一起使用。

代码语言:javascript
复制
var urls = new List<string>();
foreach (var url in urls)
{
   HttpResponse.RemoveOutputCacheItem(url);
}

但为此,我必须与我的数据库建立几个连接,获取类别、页面,即使不知怎么地,我得到了所有的搜索字符串,这仍然会带来太多的麻烦。

我的问题是,是否有更好的方法一次删除所有这些缓存?

EN

回答 1

Stack Overflow用户

发布于 2016-01-20 12:51:12

是否有更好的方法一次删除所有这些缓存?

我不知道。但是,您可以删除特定控制器操作方法的缓存项,如下所示(假设您的控制器名为controller1)。取自清除ASP.Net MVC缓存的想法

代码语言:javascript
复制
HttpResponse.RemoveOutputCacheItem(Url.Action("Index", "controller1", new { category = 1234  }));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34900074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档