4

我有一个操作,它返回一个带有顶部登录用户控件的母版页的视图。当我设置 outputcache 时,它​​会缓存包括当前用户在内的整个输出,所以每个人都会看到最后一个点击页面刷新缓存的人作为当前用户。有没有办法防止母版页被包含在缓存中?

我正在使用以下代码:

[OutputCache(Duration=3000, VaryByParam={params})]  
public ActionResult {actionName}({params})  
{  
    {codeGoesHere}  
}
4

2 回答 2

1

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

于 2010-01-20T08:14:01.900 回答
1

有一个“甜甜圈缓存”的概念(从输出缓存中排除页面的一部分),但它没有在 asp.net MVC 1 中实现。为了解决您的问题,您可以尝试这种解决方法

于 2010-01-20T08:18:42.763 回答