【发布时间】:2012-10-04 14:51:37
【问题描述】:
我在我的控制器操作之上定义了 OutputCache 属性,以便服务器可以快速地为不同的用户提供相同的响应。但它会缓存整个页面。我的意思是如果我缓存了返回View() 的操作,母版页也会被缓存。因此,母版页顶部的用户帐户信息会被每个用户共享。我只想缓存内容页,而不是母版页_Layout.cshtml。我怎样才能排除它?
编辑: 我遇到问题的部分是:
@if(Request.IsAuthenticated) {
<text>Hello <strong>@User.Identity.Name</strong>!</text>
@: |
@Html.ActionLink("Index", "Index", "Account")
@: |
@Html.ActionLink("Logout", "Logout", "Account")
}
else
{
@:|
@Html.ActionLink("Login", "Login", "Account")
}
当我缓存一个控制器动作时,返回的视图也从缓存中携带了这个用户登录部分,因此它几乎向每个用户表示错误的敬意。即使页面被缓存,如何动态生成这部分?
【问题讨论】:
标签: c# asp.net-mvc-3 caching outputcache