Мне нужно заставить кэшировать определенное дочернее действие при входе пользователя в систему, потому что я должен избегать кэширования этого дочернего действия родительским действием, которое использует AuthorizeAttribute
. Однако при программном вызове дочернего действия внутри метода действия Login для его кэширования кэширование не работает.
Вызов дочернего действия:
HomeController homeController = new HomeController();
var actionResult = homeController.MainMenu();
Детское действие:
[OutputCacheAttribute(Duration = 300, VaryByCustom = "User")]
[ChildActionOnly]
public ActionResult MainMenu()
{
return PartialView("MainMenu");
}
Дополнение:
Мне известно, что эта процедура противоречит концепции процесса кэширования. Однако мне нужно сделать это, потому что логин может перенаправить пользователя на его страницу выхода, где дочернее действие может быть вызвано действием, которое использует AuthorizeAttribute
. Дочернее действие является частью страницы макета, поэтому мне нужно, чтобы оно было предварительно обработано/кэшировано методом действия, который не использует атрибут авторизации. Это связано с тем, что AuthorizeAttribute
не поддерживает кэширование вывода дочерних действий.
Authorize
? - person Chris Pratt   schedule 18.12.2015AuthorizeAttribute
, вы можете найти этот комментарий - person Hello It's me   schedule 18.12.2015