我在一个部分视图上遇到了一个问题,它被缓存了,而实际上它不应该被缓存。这个部分视图用于显示页面上的登录/注销状态。它使用以下简单代码来确定要显示哪个链接
@if(Request.IsAuthenticated) {
<a href="@Url.Action("LogOff", "Account", new { area = "" })">Log Off</a>
}
else {
<a href="@Url.Action("LogOn", "Account", new { area = "" })">Log On</a>
}
这个部分视图被用于我 MVC3 应用的所有页面中,使用的是
@Html.Partial("_HeaderView")
在我的大多数控制器中,我都定义了输出缓存,这样我就可以利用缓存我的内容。
[OutputCache(Duration = 86400, VaryByParam = "*")]
现在我的问题是整个页面被缓存了,而我不希望局部视图被缓存。这导致了错误的行为,有时候即使用户没有登录,它也会显示LogOff等。是否有一种方法可以缓存所有内容,除了相关的局部视图?