В зависимости от настройки, возможно, один из возможных подходов к отключению кэширования в частичном представлении состоит в том, чтобы разбить его на отдельный клиентский вызов, т. Е. На jQuery / Ajax.
В противном случае, как насчет этого варианта темы.
Потребовалось немного времени, чтобы разобраться с этим после возвращения в MVC. Просто поместите настройки кеша непосредственно в частичное представление заголовка. Как и при отображении имени пользователя. Нет необходимости в глобальном или серверном коде.
Единственная проблема - после кэширования страницы она не будет обновляться сразу после входа в систему. Но мы сохраняем скорость, когда это необходимо при первоначальном просмотре продуктов. Хорошо, компромисс в нашем случае.
@if ( Request.IsAuthenticated)
{
@* when we are authenticated, don't cache any more! *@
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.Cache.SetNoStore();
HttpContext.Current.Response.Cache.SetNoServerCaching();
@*@Html.Raw(DateTime.Now.ToString())*@
@Html.ActionLink("Welcome " + ( String.IsNullOrEmpty(((System.Security.Claims.ClaimsIdentity)User.Identity).FindFirstValue("UserName")) ? User.Identity.Name : ((System.Security.Claims.ClaimsIdentity)User.Identity).FindFirstValue("UserName")), "Index", "Manage", routeValues: new { Area = "Store" }, htmlAttributes: new { title = "Manage"})
}
else
{
}