Кэш вывода в мобильном и настольном представлении - PullRequest
0 голосов
/ 28 января 2020

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);
}

Я проверил, что в режиме разработчика режим переключения на мобильный и настольный компьютер работает хорошо, но через некоторое время я проверяю приложение, которое загружается и блокируется в мобильном кэшированном версия в мобильном и настольном!

...