0

我正在使用 MVC 5.2.3 开发一个网站,它有一个顶部菜单栏,_Layout.cshtml其中包含登录的用户信息。就像用户的全名一样,所以它不应该被缓存。
为了从 OutPutCache 中排除此菜单,我为它创建了一个子操作。

[ChildActionOnly]
public PartialViewResult TopMenu()
{
    return PartialView("~/Views/Partials/TopMenuPartial.cshtml");
}

之后,我安装了MvcDonutCachingnuget 包并按_Layout.cshtml如下方式使用它:

@Html.Action("TopMenu", "Home", true)

但是,它不起作用,如果有人登录,它的 FullName 会出现在所有客户端的顶部菜单栏中。

我应该如何从 MVC 中删除此子操作OutPutCache

4

1 回答 1

0

我发现了问题,
我没有DonutOutputCache在动作上使用输出缓存的属性,OutPutCache而是使用了。
我将其更改为DonutOutputCache,并在其中添加以下设置Application_Start

protected void Application_Start()
{
...
DevTrends.MvcDonutCaching.OutputCache.DefaultOptions = DevTrends.MvcDonutCaching.OutputCacheOptions.ReplaceDonutsInChildActions;
...
}

现在,我的问题解决了。

于 2016-01-16T05:05:49.407 回答