出力キャッシュは、以下のコードを使用してASP.NET MVC2に実装されています。GetVaryByCustomStringが呼び出されない理由
GetVaryByCustomString
メソッドは呼び出されません。最初の行にブレークポイントを配置し、アプリケーションを実行するとブレークポイントに達していないことが示されます。 コントローラIndex()内のブレークポイントに達しました。
VaryByCustom
をASP.NET MVC2で使用するには?
コントローラー:
[OutputCache(VaryByCustom = "user")]
public ActionResult Index(string _entity, string id)
{
...
Global.asax.cs:
public class MvcApplication : System.Web.HttpApplication
{
public override string GetVaryByCustomString(HttpContext context, string arg)
{
if (arg == "user")
{
HttpCookie cookie = context.Request.Cookies["Company"];
if (cookie != null)
return Thread.CurrentPrincipal.Identity.Name + "," + cookie.Value;
return Thread.CurrentPrincipal.Identity.Name;
}
return base.GetVaryByCustomString(context, arg);
}
}
ありがとうございます。このVary:*ヘッダーを追加した後、ブラウザに送信され、ブラウザのキャッシュが無効になります。 VaryByCustomでブラウザキャッシュを有効にする方法 – Andrus