【问题标题】:Output caching _ViewStart.cshtml and _Layout.cshtml in MVC 3MVC 3 中的输出缓存 _ViewStart.cshtml 和 _Layout.cshtml
【发布时间】:2011-09-22 18:24:29
【问题描述】:

我正在尝试缓存 MVC 3 _ViewStart 和 _Layout 页面,我是否认为这些默认情况下不缓存?问题是 Web 服务器或 IIS 中的 VS bult 应该在这些站点母版页中缓存我的图像,但它似乎每次都在加载它们。

我可以将 OutputCache 属性放在控制器上,但我不能放在上面的这些页面上,因为它们没有控制器。有可能吗?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 caching master-pages outputcache


    【解决方案1】:

    _ViewStart_Layout 只是最终标记的组成元素。因此,通过在某些控制器操作上使用 [OutputCache] 属性,您正在缓存从该操作生成的整个 HTML,包括视图,实际上您也在缓存这些元素。

    很遗憾,ASP.NET MVC 3 不支持Donut Caching。它仅支持Donut Hole Caching。我想这将在未来的版本中得到改进和增加支持。

    【讨论】:

    • 谢谢达林,如果我在这些页面中的所有内容都是静态的,我只想缓存它们怎么办?
    • @David,只需用 OutputCache 属性装饰一些控制器动作,内容就会被缓存。
    • 但是我必须在所有控制器上执行此操作,我不能集中执行吗?
    • @David,很遗憾 ASP.NET MVC 3 不支持 Donut Caching。它仅支持Donut Hole Caching。我想这将在未来的版本中得到改进并增加支持。
    • @Darin,所以默认情况下,如果我在 Home/Index 上启用 OutputCache 并且它包括整个 HTML:有人访问 /Home/ 并且布局在默认 MVC 应用程序中包含 _LogOnPartial,该应用程序显示一个用户的名称,默认情况下会为所有用户缓存吗? IE。如果我先到,鲍勃会看到“亚伦”吗?
    猜你喜欢
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    相关资源
    最近更新 更多