客户端的Outputcache属性与部分页面'

时间:2011-06-20 11:26:26

标签: c# asp.net-mvc asp.net-mvc-3 outputcache

我是创建应用程序菜单的部分页面。我使用renderaction调用菜单部分视图。我想通过执行此操作将此部分页面存储在客户端

[OutputCache(Duration=7200, Location  =OutputCacheLocation.Client, NoStore= true)]

但是我收到以下错误

OutputCacheAttribute for child actions only supports Duration, VaryByCustom, and VaryByParam values. Please do not set CacheProfile, Location, NoStore, SqlDependency, VaryByContentEncoding, or VaryByHeader values for child actions

的替代方案

1 个答案:

答案 0 :(得分:2)

MVC 3中的部分内容无法进行客户端缓存。客户端浏览器只接收HTML,“部分”仅存在于服务器端。

为什么不使用服务器端缓存?

当菜单内容取决于用户时,您可以将相关用户信息添加到子操作的参数中。例如:

[OutputCache(Duration=7200, VaryByParam="*")]  
public PartialViewResult Menu(int userId)
{
   ...
}