2016-01-12 8 views
0

Я разрабатываю веб-сайт с MVC 5.2.3, он имеет верхнюю панель меню в _Layout.cshtml, которая содержит зарегистрированные данные пользователя. Как и FullName пользователя, поэтому он не должен быть кешем.
Чтобы исключить это меню из OutPutCache, я создал для него дочернее действие.Удалить ChildAction из OutPutCache в MVC 5?

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

После этого я установил MvcDonutCaching NuGet пакет и использовать его в _Layout.cshtml как следующее:

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

Но это не работает, и если кто-то логин, это FullName пришел в верхнем меню бар для всех клиентов.

Как я должен удалить это дочернее действие с MVC OutPutCache

ответ

0

Я нашел проблему,
я не использовал DonutOutputCache атрибут для кэша вывода на действия, я использовал OutPutCache вместо этого.
я изменил его на DonutOutputCache, и добавьте следующую настройку в Application_Start

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

Теперь моя проблема решена.