asp.net - 过期输出缓存 ASP.Net MVC

标签 asp.net asp.net-mvc caching outputcache

我在我的 MVC 应用程序中使用标准 outputcache 标签,它工作得很好,但我需要在某些时候强制转储它。我如何实现这一目标?被缓存的页面是从一个非常简单的路由 {Controller}/{PageName} 构建的 - 所以大多数页面都是这样的:/Pages/About-Us

这是位于我的 .aspx View 页面顶部的输出缓存标记,只是为了清楚:

<@ OutputCache Duration="100" VaryByParam="None" %>

因此,在更新内容的同一 Controller 上的另一个操作中,我需要转储此缓存,甚至全部转储 - 这是一个非常小的应用程序,因此转储所有缓存项目没什么大不了的。

最佳答案

小心使用“无”与“”。

  • 如果您发送“”,则是 Vary 的 HttpHeader没有发送。
  • 如果您发送“无”,则 Vary 的 HttpHeader已发送。

  • 我用过 Fiddler以验证此行为。

    这似乎会影响浏览器是否会返回服务器检查最新版本(导致 304)。至少在 Chrome 中是这样。您要使用 Varies=""如果您确定不想在文件过期之前更新文件。

    我建议使用 Varies=""正如我在 this post 中所做的那样.对于我的 javascript 文件,我不希望浏览器返回并发出另一个 Http 请求,直到它过期。 304 是不必要的。

    关于asp.net - 过期输出缓存 ASP.Net MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/376851/

    相关文章:

    asp.net-mvc - AntiForgeryToken 是否应该应用于每个后期操作?

    jquery - 未捕获 RangeError : Maximum call stack size exceeded - Asp.net Mvc DropDown 与 Web Api 绑定(bind)

    android - Robospice - 我们应该以什么顺序使用 execute()、addListenerIfPending()、getFromCache()

    AJAX post 请求对不同的请求返回相同的响应

    c# - 在 Entity Framework 中更改命名空间

    c# - 简单的所见即所得文本框 ASP.NET

    asp.net-mvc - ApiController 和 Controller 继承自同一个基类

    windows - 检索 DNS 缓存中的内容

    c# - 如何将 html2canvas 图像保存到 jquery 中的系统文件夹中

    c# - 将 IEnumerable 添加到 ViewState