MVC控制器加了 [ResponseCache(Duration = 31536000.. 想清空怎么做呢? 返回
C#论坛
老数据
4
1923

悬赏:0 飞吻
数据更新了,想更新这个页面的缓存,但网上找了个遍没发现有关的方法,用其他的又不想,只想用这个微软自带的,因为这只是相当于前端的页面!
怎么办,高人有方法吗,谢谢指点!
完整 代码如下:
[ResponseCache(Duration = 31536000, VaryByQueryKeys = new[] { "pageIndex" })] [HttpGet("singer/{pageIndex}")] public IActionResult sitemap(int pageIndex) { Dictionary<string, object> parameters = new(); parameters.Add("pageIndex", pageIndex); parameters.Add("pageSize", 99); JObject j = Common.GetUrlData.Client_Post(parameters, Common.Constants.apiUrl + "/api/www/singer/GetSingerList").Result; if (j["returnCode"].ToInt32() != 200) return Ok(JsonHelper.OutErr(4000, "歌手不存在")); else { ViewBag.listData = j["data"]["list"]; ViewBag.pageIndex =pageIndex; ViewBag.total=j["data"]["total"].ToInt32(); ViewBag.SingerCover = "/assets/img/banner/banner1.jpg"; } return View(); }
热忱回答(4)
-
fate sta VIP0
2022/4/26?id=随机数
0 回复 -
goodgame36 VIP0
2022/4/26@fate sta:你意思,再加一个参机参数?
0 回复 -
goodgame36 VIP0
2022/4/26只能重启服务器?
0 回复 -
fate sta VIP0
2023/2/10如果想清除控制器上加了ResponseCache特性的缓存,可以使用以下几种方法:
在控制器上添加 ResponseCache 特性的 Location 参数:
[ResponseCache(Duration = 31536000, Location = ResponseCacheLocation.None)]
这样的话缓存的数据不会被存储到服务器上,从而避免了清空缓存的问题。
在视图中使用 @NoStore 特性:
@NoStore
这将禁用当前视图的缓存。
使用代码在控制器中清除缓存:
Response.Headers["Cache-Control"] = "no-cache, no-store, must-revalidate"; Response.Headers["Pragma"] = "no-cache"; Response.Headers["Expires"] = "0";
这段代码将在控制器中清除缓存。
请根据您的需求选择适当的方法。
0 回复