我对某些索引 View 使用输出缓存,因为它们包含大量数据。
我想针对每个用户保持它的特定性。因为 View 可能因角色而异。
[OutputCache(Duration = 3600, VaryByParam = "none", Location = OutputCacheLocation.Client)]
public ActionResult Index(string schooljaarparam) {
return View(_db.Lesplaatsens.Where(l => l.Schooljaar.Sch_Schooljaar == schooljaarparam).OrderBy(q => q.Lpl_Gemeente).ThenBy(q => q.Lpl_Instelling).ToList());
}
现在,当有人创建一个新项目并返回到索引 View 时。如何删除索引页面的缓存,以便新创建的项目显示在列表中?
我认为这将是一个常见问题,但我还没有找到解决方案。
我猜你需要使用
HttpResponse.RemoveOutputCacheItem()
但我如何找到路线。我在哪里可以看到调试器中当前缓存的项目?
最佳答案
您无法删除缓存的项目,因为它不存在(即您没有在服务器上缓存它)。
当你说 Location = OutputCacheLocation.Client
,浏览器将缓存响应,并且在用户请求同一页面时甚至不会向您的服务器发送新请求,除非缓存过期或用户通过按 F5 专门请求最新版本。
关于asp.net-mvc - 在 asp.net mvc 中更新时删除索引 View 中的输出缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4898988/