SORU
21 Temmuz 2009, Salı


Devre dışı bırak tarayıcı tüm ASP.NET Web sitesi için önbellek

Bir tarayıcı önbelleğini devre dışı bırakmak için bir yöntem arıyorumtüm ASP.NET MVC web Sitesi

Aşağıdaki yöntemi buldum:

Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
Response.Cache.SetNoStore();

Ve ayrıca meta etiketi bir yöntem (bazı eylemler MVC Ajax, bir baş olmadan, meta etiketi ile kısmi HTML/JSON göndermek beri benim için hiçbir şey işe yaramaz).

<meta http-equiv="PRAGMA" content="NO-CACHE">

Ama bütün bir web sitesi için tarayıcı önbelleğini devre dışı bırakmak için basit bir yöntem arıyorum.

CEVAP
10 Kasım 2009, Salı


İActionFilter devralan bir sınıf oluşturun.

public class NoCacheAttribute : ActionFilterAttribute
{  
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        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();

        base.OnResultExecuting(filterContext);
    }
}

Sonra gerekli nitelikler koydu

[NoCache]
[HandleError]
public class AccountController : Controller
{
    [NoCache]
    [Authorize]
    public ActionResult ChangePassword()
    {
        return View();
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • arnejann

    arnejann

    3 Kasım 2007
  • Jason Parker

    Jason Parker

    14 Aralık 2009
  • Xcode programming tutorials

    Xcode progra

    17 EYLÜL 2006