从 MVC 5 中的 OutPutCache 中删除 ChildAction?

Remove ChildAction from OutPutCache in MVC 5?

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

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

之后,我安装了 MvcDonutCaching nuget 包并在 _Layout.cshtml 中使用它,如下所示:

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

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

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

我发现了问题,
我没有将 DonutOutputCache 属性用于操作的输出缓存,而是使用 OutPutCache
我改成DonutOutputCache,在Application_Start

中加入如下设置
protected void Application_Start()
{
...
DevTrends.MvcDonutCaching.OutputCache.DefaultOptions = DevTrends.MvcDonutCaching.OutputCacheOptions.ReplaceDonutsInChildActions;
...
}

现在,我的问题解决了。