outputcache
атрибут в asp. net mvc настроенный
public class ImageOutputCache : OutputCacheAttribute
{
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
if (filterContext.HttpContext.Response.ContentType.Contains("json"))
return;
base.OnResultExecuting(filterContext);
}
}
и использование этого настраиваемого атрибута в контроллере, а затем использование кэша для мобильной версии и рабочего стола
[ImageOutputCache(Duration = Int32.MaxValue, VaryByCustom = "IsMobile")]
public async Task<ActionResult> Index(){}
и добавил этот код в global.asax
public override string GetVaryByCustomString(HttpContext context, string custom)
{
if (custom.ToLowerInvariant() == "ismobile")
if (context.Request.Browser.IsMobileDevice)
return "mobile";
else
return "nomobile";
return base.GetVaryByCustomString(context, custom);
}
Я проверил, что в режиме разработчика режим переключения на мобильный и настольный компьютер работает хорошо, но через некоторое время я проверяю приложение, которое загружается и блокируется в мобильном кэшированном версия в мобильном и настольном!