ブラウザのキャッシュを無効にする方法を探していますASP.NET MVC ウェブサイト全体
次の方法を見つけました:
Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
Response.Cache.SetNoStore();
また、メタ タグ メソッドもあります (一部の MVC アクションは、ヘッドやメタ タグなしで部分的な HTML/JSON を Ajax 経由で送信するため、私の環境では機能しません)。
<meta http-equiv="PRAGMA" content="NO-CACHE">
しかし、私はウェブサイト全体のブラウザ キャッシュを無効にする簡単な方法を探しています。
ベストアンサー1
IActionFilter から継承するクラスを作成します。
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);
}
}
次に、必要な場所に属性を配置します...
[NoCache]
[HandleError]
public class AccountController : Controller
{
[NoCache]
[Authorize]
public ActionResult ChangePassword()
{
return View();
}
}