我正在使用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
答案 0 :(得分:0)
我发现了问题,
我没有将DonutOutputCache
属性用于操作上的输出缓存,而是使用了OutPutCache
我将其更改为DonutOutputCache
,并在Application_Start
protected void Application_Start()
{
...
DevTrends.MvcDonutCaching.OutputCache.DefaultOptions = DevTrends.MvcDonutCaching.OutputCacheOptions.ReplaceDonutsInChildActions;
...
}
现在,我的问题解决了。