从MVC 5中的OutPutCache中删除ChildAction?

时间:2016-01-12 09:22:10

标签: asp.net-mvc asp.net-mvc-5 outputcache donut-caching

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

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

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

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

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

如何从MVC OutPutCache

中删除此子操作

1 个答案:

答案 0 :(得分:0)

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

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

现在,我的问题解决了。