带有动态片段的 ASP.NET MVC 输出缓存

标签 asp.net asp.net-mvc asp.net-mvc-2 caching fragment-caching

我怎么能缓存整个页面,除了顶部的一点,它说的是 "Welcome back, Matt! | Log Out"如果用户登录等等?

我正在使用 ASP.NET MVC 2。

最佳答案

您要实现的目标称为 donut 缓存或缓存替换。从 ASP.NET MVC 2 开始,没有内置的帮助程序来支持这种情况。据我所知,这是 MVC v.1 中的一个计划功能,但在发布的过程中被删除了。欲了解更多信息,请查看此链接 http://haacked.com/archive/2008/11/05/donut-caching-in-asp.net-mvc.aspx , Is Donut Caching working properly with ASP.NET MVC? .
Oleg 在这里提到的 VaryByParam 选项在您的情况下不是一个好主意。如果您有 VaryByParam,则将为每个不同的参数值(在您的情况下为每个用户名)将不同版本的页面放入缓存中。
就个人而言,我会考虑缓存数据,而不是页面的整个输出。

关于带有动态片段的 ASP.NET MVC 输出缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3339352/

相关文章:

asp.net-mvc - asp mvc iis7 Debug模式错误页面输出不可读的字符

asp.net-mvc - Backbonejs 更新模型并将 idAttribute 设置为 Id

asp.net-mvc - ASP.NET MVC : Textboxes don't get highlighted when I access Modelstate. 手动添加模型错误

JQuery UI 按钮在 IE 中触发 "potentially dangerous Request.Form value"错误

c# - MvcSiteMapProvider 和 dynamicNodeProvider 的问题

asp.net-mvc-2 - ASP.NET Mvc - 可为空参数和逗号作为分隔符

c# - 如果控件的 Eval 值为 null,则隐藏 div

c# - asp.net mvc 5异步 Action 方法

asp.net - 为什么没有为我的自定义角色提供程序设置应用程序名称?

asp.net - 无法在 Web 应用程序 VS2012 中找到全局 asax 文件