Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ASP NET核心-以编程方式清除响应缓存_Javascript_Asp.net Core_Caching - Fatal编程技术网

Javascript ASP NET核心-以编程方式清除响应缓存

Javascript ASP NET核心-以编程方式清除响应缓存,javascript,asp.net-core,caching,Javascript,Asp.net Core,Caching,我有一个控制器动作,它呈现一个局部视图,该视图异步地从数据库中获取一些数据。假设这些是菜单项 [Route("SomeData")] [ResponseCache(Duration = 1000 * 60 * 60)] public IActionResult SomeData() { //returns a partial view for my ajax call } 数据不会经常更改,但用户可能会做

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

 [Route("SomeData")]
        [ResponseCache(Duration = 1000 * 60 * 60)]
        public IActionResult SomeData()
        {
            //returns a partial view for my ajax call
        }
数据不会经常更改,但用户可能会做一些事情,并知道这会导致局部视图发生更改,即应显示新的菜单项

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

我尝试用javascript执行
window.reload(true)
和此回复一样,但在这两种情况下都不起作用

我需要与在Chrome中单击Ctrl+Refresh按钮相同的行为


Cheers

通过响应中的头缓存在客户端上,您无法“清除”它。作为一种解决方法,您可以首先在客户端设置一个合适的响应缓存的最大年龄,然后使用
VaryByHeader
VaryByQueryKeys
,每次要刷新缓存时,您应该为标头/查询字符串提供不同的值: