【问题标题】:How to store dynamically generated view in cache in MVC3 web application?如何在 MVC3 Web 应用程序的缓存中存储动态生成的视图?
【发布时间】:2012-03-21 13:39:14
【问题描述】:

这是关于 asp.net mvc3 web 应用程序的。

我们使用对象缓存来存储序列化对象(包含产品详细信息)以防止昂贵的数据库查询。

假设它在对象缓存中存储了 100 个产品属性,这些属性是在加载页面时从缓存而不是从数据库中检索的。然后,传递给查看准备和显示的页面。因此它会在视图上迭代 100 次并调用所有其他相关的局部视图来准备页面。

您是否建议将生成的视图存储在缓存中而不是使用对象缓存?又该怎么做呢?

【问题讨论】:

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


    【解决方案1】:

    您是否建议将生成的视图存储在缓存中而不是使用对象缓存?

    是的。

    然后怎么做?

    通过使用[OutputCache] 属性装饰为该视图提供服务的控制器操作。或者,如果您只想缓存页面的某些部分,您可以在将使用 Html.Action 帮助器呈现的子操作上使用此属性(而不是使用 HTML.Partial -> 您无法使用它进行缓存)。

    【讨论】:

      【解决方案2】:

      如果视图是静态的,您可以将视图存储在缓存中。您可以通过将OutputCache 属性置于操作上来做到这一点。

      VB:

      <OutputCache(Duration:=3660, VaryByParam:="None")>
      

      C#

      [OutputCache(Duration=3660, VaryByParam="None")]
      

      如果您希望缓存根据操作参数而有所不同,您可以更改 VaryByParam 设置

      【讨论】:

        猜你喜欢
        • 2017-05-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-09
        • 2018-06-07
        相关资源
        最近更新 更多