la cache di output è implementata in ASP.NET MVC2 utilizzando il codice riportato di seguito.Perché GetVaryByCustomString non viene chiamato
GetVaryByCustomString
metodo non chiamato: posizionare il punto di interruzione sulla prima riga e l'applicazione in esecuzione mostra che il punto di interruzione non è stato raggiunto. È stato raggiunto il punto di interruzione nel controller Indice().
Come utilizzare VaryByCustom
in ASP.NET MVC2?
Controller:
[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);
}
}
Grazie. Dopo aver aggiunto questo Vary: * l'intestazione viene inviata al browser e questo disabilita la cache del browser. Come abilitare la cache del browser con VaryByCustom? – Andrus