14 messaggi dal 09 dicembre 2013
Articolo molto interessante. C'è un modo per disabilitare il caching solo per le View specifiche per i dispositivi mobile?Nei browser mobile ho riscontrato alcuni problemi di navigazione causati dal caching.
Grazie.
Mi hai dato un'idea per il prossimo script

Vediamo se riesco a risponderti lunedì!
m.
14 messaggi dal 09 dicembre 2013
In realta' potrebbe bastare aggiungere una condizione per verificare se la richiesta viene da un dispositivo mobile alla classe in cui rimuovi il caching:
 public class NoCacheActionFilter : ActionFilterAttribute
    {
        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {

            if (filterContext.HttpContext.Request.Browser.IsMobileDevice)
            {
                filterContext.HttpContext.Response.Cache
         .SetExpires(DateTime.UtcNow.AddDays(-1));
                filterContext.HttpContext.Response.Cache
                  .SetValidUntilExpires(false);
                filterContext.HttpContext.Response.Cache
                  .SetRevalidation(HttpCacheRevalidation.AllCaches);
                filterContext.HttpContext.Response.Cache
                  .SetCacheability(HttpCacheability.NoCache);
                filterContext.HttpContext.Response.Cache.SetNoStore();

                filterContext.HttpContext.Response.CacheControl = "no-cache";
                base.OnResultExecuting(filterContext);
            }
        }
    }


Che ne dici?
Modificato da fdo il 29 settembre 2014 14.58 -
Modificato da fdo il 29 settembre 2014 15.15 -
33 messaggi dal 18 giugno 2002
salve
ho fatto questa classe in vb,
Imports Microsoft.VisualBasic
Imports System.Web.Mvc
Public Class NoCacheActionFilter
Inherits ActionFilterAttribute

Public Overrides Sub OnResultExecuting(filterContext As ResultExecutingContext)
filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1))
filterContext.HttpContext.Response.Cache.SetValidUntilExpires(False)
filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches)
filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache)
filterContext.HttpContext.Response.Cache.SetNoStore()

filterContext.HttpContext.Response.CacheControl = "no-cache"

MyBase.OnResultExecuting(filterContext)
End Sub

End Class

non ho ben capito però come fare a richiamarla nel file ad esempio prova ashx che viene richiamato con ajax.
ovviamente ho fatto l'importazione Imports NoCacheActionFilter
però come la richiamo?
perdonate la mia ignoranza :)

Doctorfire

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.