asp.net-mvc - 在 asp.net mvc 中更新时删除索引 View 中的输出缓存

标签 asp.net-mvc outputcache

我对某些索引 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/

相关文章:

c# - 具有 SqlDependency 的 IN 运算符不起作用

asp.net-mvc - KO 绑定(bind)在 IIS 6 中不起作用

c# - 使用 RouteArea 后 ASP.NET MVC 5 路由停止工作

asp.net-mvc - 哪个 ASP.NET MVC 验证库?

jquery - 使用 jquery 选择选择器更改部分 View 后无法获取 css

ASP.net - 通过查询字符串缓存 (VaryByParam)

javascript - MVC5 Controller 未接收ajax发布的html内容

php - 输出缓存和Redis?

asp.net - 标准 OutputCache 属性是每个用户还是每个应用程序

c# - 在 ASP.NET 中清除页面缓存