Получите это через nuget: http://mvcdonutcaching.codeplex.com/
Добавьте действие для LogOnPArtial, чтобы вы могли изменить его с Html.Partial на Html.Action в _Layout.cshtml
@Html.Action("_LogOnPartial","Account",true)
true
- это параметр исключения, который говорит об исключении этого из кэширования.Действие будет вызвано, даже если страница, на которой оно находится, кэшируется.Это «дыра» в пончике, который не кэшируется.
На вашей странице, например, About.cshtml, который вы хотите кэшировать, примените атрибут DonutOutputCache.Это позволяет новой платформе проверять страницу в процессе ее кэширования и добавлять флаги, где вы исключили действия.
Приятно то, что _LogOnPartial не кэшируется и будет обновляться для разных пользователей, в то время как остальныестраница кэшируется, и действие About () не будет запущено.Вы даже можете настроить кэширование для действия _LogOnPartial, созданного вами с помощью атрибута DonutOutputCache, но с более частым или менее частым интервалом, либо изменить его по другому параметру.Это позволяет вам составлять страницы с частями, и логика обновления кэша независимо настраивается для каждой части.
IMO, этот инструмент - именно то, как я предполагал, должно быть реализовано кэширование в MVC.