首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET内核-以编程方式清除ResponseCache

ASP.NET内核-以编程方式清除ResponseCache
EN

Stack Overflow用户
提问于 2020-01-10 16:11:19
回答 1查看 2.1K关注 0票数 3

我有一个控制器操作,它呈现一个部分视图,该视图异步地从数据库获取一些数据。假设这些是菜单项。

代码语言:javascript
复制
 [Route("SomeData")]
        [ResponseCache(Duration = 1000 * 60 * 60)]
        public IActionResult SomeData()
        {
            //returns a partial view for my ajax call
        }

数据并不经常更改,但是用户可能会做一些事情,并且知道它应该导致部分视图中的更改,即应该出现新的菜单项。

但是,对于缓存的响应,数据不会从DB加载。我想在页面上添加一个“刷新”按钮,这样用户就可以显式清除所有缓存。

我尝试了javascript来做window.reload(true);和这个回复https://stackoverflow.com/a/55327928/2892378,但是在这两种情况下它都不起作用。

我需要相同的行为,点击Ctrl +刷新按钮在Chrome。

干杯

EN

回答 1

Stack Overflow用户

发布于 2020-01-13 06:30:17

它是通过响应中无法“清除”的头部缓存在客户机上的。作为解决办法,您可以首先在客户端设置响应缓存的最大年龄,然后使用VaryByHeaderVaryByQueryKeys,每次您想刷新缓存时,都应该为您的头/查询字符串提供不同的值:

https://learn.microsoft.com/en-us/aspnet/core/performance/caching/middleware?view=aspnetcore-3.1

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59685230

复制
相关文章

相似问题

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