0

当我更改参数的值时,我的 asp.net core mvc 应用程序并不总是重新运行控制器。它只是返回以前的缓存。我认为 VaryByQueryKeys 是为了解决这个问题。

[ResponseCache(Duration = 3600, VaryByQueryKeys = new string[] { "widthHeight" }, Location = ResponseCacheLocation.Any)]
        [Route("/{widthHeight}")]
        public IActionResult Index(string widthHeight)
        {
4

1 回答 1

1

据我所知,如果您通过在地址栏中直接输入 URL(例如www.example.com/abcd/index.html)或使用 F5 刷新页面来使用 chrome,则 chrome 将始终发送 Cache-Control: max-age=0标题。

这就是您的响应缓存不起作用的原因。

要解决此问题,您应该使用其他浏览器进行测试,例如 IE11,或者您可以在应用程序中设置超链接,如下所示:

<a href="https://localhost:44374/?widthHeight=aaaa">aaa</a>

如果单击此超链接,您会发现缓存将起作用。

结果:

在此处输入图像描述

于 2020-09-15T11:05:38.327 回答