【问题标题】:Is Donut caching available in ASP.NET MVC 3ASP.NET MVC 3 中是否提供甜甜圈缓存
【发布时间】:2013-01-25 18:20:11
【问题描述】:

ASP.NET MVC 3(最终版)今天发布。当这个版本还处于起步阶段时,我记得在 codeplex 上读到正在考虑使用甜甜圈缓存。有谁知道这是否进入了V3?我似乎找不到任何信息,所以我只能(遗憾地)假设它没有发生。

【问题讨论】:

  • 让我做对了,甜甜圈缓存从 .NET 2 开始就可用。MVC2 支持它。 MVC3 放弃支持?!到底是为了什么?除了自己写之外没有其他选择吗?啊,这不可能。

标签: caching asp.net-mvc-3 donut-caching


【解决方案1】:

是的,是的。 Scott Gu blogged about it:

除了支持整页 输出缓存,ASP.NET MVC 3 也 支持部分页面缓存——其中 允许您缓存输出区域 并在多个请求中重用它 或控制器。 [输出缓存] 部分页面缓存的行为是 使用 RC2 更新,以便子内容 缓存的条目基于 输入参数而不是 URL 顶层请求的结构—— 这使得缓存场景 比 之前的 RC 中的行为。


更新:

在 ASP.NET MVC 3 中仅支持开箱即用的甜甜圈孔缓存。这允许您通过在子操作上使用 [OutputCache] 属性来缓存页面的一小部分。不支持允许排除已缓存页面部分的甜甜圈缓存。 Response.WriteSubstitution 自 ASP.NET MVC 2 起就无法使用。这里是 good article,它解释了 ASP.NET MVC 3 中可用的不同缓存选项。


更新 2:

这是一个great article,它说明了如何在 ASP.NET MVC 3 中启用甜甜圈缓存。

【讨论】:

  • 这是甜甜圈孔缓存,而不是甜甜圈缓存。 MVC 3 中不支持内置的甜甜圈缓存。
  • @Darin,感谢您的更新。确实是一篇优秀的文章。我在某处读到目标是在 MVC 4 中包含甜甜圈缓存。不确定是坚持还是使用这个 nuget 包...
【解决方案2】:

这是来自 Scott 的更多 detailed example,使用 Razor 语法。

【讨论】:

  • 很好的链接,但不确定这是否是甜甜圈洞缓存,因为页面没有被缓存,但“甜甜圈洞”是。我不想缓存页面的某些部分,而是缓存页面并使部分保持动态。这是一个细微差别,但应该澄清。
【解决方案3】:

甜甜圈缓存(是的,真实的东西)可作为 MVC 的“速度库”的一部分:Moth。适用于 ASP.NET MVC 2 和 MVC 3。

文档位于the wiki,示例位于Mvc3.Demo 文件夹中

【讨论】:

    【解决方案4】:

    我找到了Denis Huvelle 提到的 NuGet 包 MvcDonutCaching,它解决了 3 和 4 的问题 - 但我还没有测试过。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      相关资源
      最近更新 更多