代码之家  ›  专栏  ›  技术社区  ›  mynameiscoffey

有没有办法让outputcache忽略ASP.NET MVC中的母版页?

  •  4
  • mynameiscoffey  · 技术社区  · 15 年前

    我有一个操作,它返回一个母版页视图,其中顶部有一个登录用户控件。当我设置output cache时,它会缓存包括当前用户在内的整个输出,所以每个人都会看到最后一个点击页面的人以当前用户的身份刷新缓存。是否有方法阻止母版页包含在缓存中?

    我使用以下代码:

    [OutputCache(Duration=3000, VaryByParam={params})]  
    public ActionResult {actionName}({params})  
    {  
        {codeGoesHere}  
    }
    
    2 回复  |  直到 15 年前
        1
  •  1
  •   Branislav Abadjimarinov Ivan Choo    15 年前

    有一个“的概念 donut caching (从输出缓存中排除页面的某些部分),但它没有在ASP.NET MVC 1中生成。为了解决你的问题,你可以尝试 this workaround .

        2
  •  1
  •   stepanian    15 年前

    输出缓存与控制器关联,而不是视图。控制器可以根据传递的参数返回不同的视图。缓存也可以通过参数来完成(就像在示例中那样)。当缓存控制器的结果时,该缓存值是视图生成的HTML(如果有的话,包括母版页)。所以,简短的回答是,不,不能从缓存中排除母版页。