我在控制器操作之上定义了 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")
}
当我缓存一个控制器动作时,返回的视图也从缓存中携带了这个用户登录部分,所以它给几乎每个用户都错误的致敬。即使页面被缓存,我如何动态生成这部分?