没有导航栏的缓存页面。用户 log-in/logout 系统根本不更新 (MVC)

Cache page without the navbar. User log-in/logout system doesn't update at all (MVC)

我正在尝试缓存没有页面导航栏的页面。 当我缓存页面时,它一切正常,但我得到了不需要的行为。

解释:

例如,当我缓存索引页面时,导航栏也被缓存,因此如果用户按下登录按钮并登录,用户将重定向到同一页面(索引)并且登录不会不生效(用户名和注销按钮没有出现),登录和注册按钮仍然显示,是个问题。

这是我的代码:

家庭控制器:

public class HomeController : Controller
{
    [OutputCache(Duration=(60*60))]
    public ActionResult Index()
    {
        return View();
    }
    // ...
}

我可以做一些改变来防止它吗?

我设法使用 "haim770" 指南找到了解决方案。

解决方案使用"Donut-Caching" (https://github.com/moonpyk/mvcdonutcaching)

1.first 我从 NuGet 包中获得了“甜甜圈缓存”。

2.I 在 _layout.cshtml 页面中切换了行:@Html.Partial("_LoginPartial")@Html.Action("partialView", true)

3.Than 我在名为 "partialView" 的帐户控制器中构建了一个 Action,return 我想要的视图,如下所示:

public ActionResult partialView()
    {
        return PartialView("_LoginPartial");
    }

4.After 我用

装饰了return索引页的Action

[DonutOutputCache(Duration=(60*60))]

像这样:

  [DonutOutputCache(Duration=(60*60))]
    public ActionResult Index()
    {
        return View();
    }

大功告成,再次感谢 Haim(Chaim)。