我有一个部分View被缓存的问题,当它不应该被缓存.此部分视图用于显示页面上的登录/注销.它使用下面的简单代码来确定要显示的链接
@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>
}
Run Code Online (Sandbox Code Playgroud)
使用我的MVC3应用程序中的所有页面调用此部分视图
@Html.Partial("_HeaderView")
Run Code Online (Sandbox Code Playgroud)
在我的大多数控制器中,我定义了输出缓存,因此我可以利用缓存内容.
[OutputCache(Duration = 86400, VaryByParam = "*")]
Run Code Online (Sandbox Code Playgroud)
现在我的问题是,当我不想要部分视图时,整个页面都被缓存了.这导致了错误的行为,即使用户没有登录,它有时会显示LogOff等.有没有办法缓存所有内容,除了有问题的部分视图?
我尝试了以下方法:
我正在尝试在 VS Community 2015 中打开在 VS 2010(pluralsight 练习)中创建的代码集。
System.Web.Mvc 引用出现错误,因此代码无法编译。我尝试将 NuGet Microsoft.AspNet.MVC 更新到当前版本 - 5.2.3 并收到以下错误:
无法安装包“Microsoft.AspNet.Razor 3.2.3”。您正在尝试将此包安装到以“.NETFramework,Version=v4.0”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。有关更多信息,请联系软件包作者。
Microsoft.AspNet.MVC v4.0.40804
Microsoft.AspNet.Razor v2.0.30506
Microsoft.AspNet.Webpages v2.0.20710
我想知道如何将 NuGets 更新到最新的稳定版本。