在MVC 6 / ASP.NET 5中清除输出缓存

4

我在使用输出缓存的部分视图中包含了html片段,如下所示:

 <cache vary-by="@Util.SomeID" expires-after="@TimeSpan.FromHours(1)">
     <div>some content</div>
 </cache>

在缓存到期之前,如果我需要更新内容,我该如何清除该特定片段(或整个缓存,如果必要)的缓存?我使用的是ASP.NET 5和MVC 6。谢谢!

可能是清除/刷新/删除OutputCache的任何方法?的重复问题。 - timothyclifford
这不是一个MVC 6 / ASP.NET 5解决方案。 - Simon Ordo
2个回答

1

IMemoryCache接口没有清除缓存的方法。否则,您可以将IMemoryCache注入到控制器或需要它的任何地方,并调用该方法。

我建议在aspnet缓存存储库上发布功能请求或使用不同的缓存机制。

我正在扩展CacheManager,以便在MVC Core中可用作内存或分布式缓存,这样将比内置的内存缓存具有更多功能,而且非常简单...


0
ASP.NET 团队已确认今天无法直接清除缓存项。建议的解决方法是使用“版本”变量作为vary-by 缓存参数的一部分。
这不会真正清除现有值,但新值将被呈现。旧值最终将在过期时被清除。
更多详细信息请参见 https://github.com/aspnet/Mvc/issues/4117#issuecomment-187298466

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接