Vous pouvez mettre cette logique dans un ActionFilter ce qui signifie que plutôt que d'ajouter le code ci-dessus pour chacune de vos méthodes d'action dans votre contrôleur, vous pouvez simplement décorer la méthode d'action avec votre filtre personnalisé. Ou s'il s'applique à toutes les méthodes d'action d'un contrôleur, vous pouvez appliquer l'attribut à l'ensemble du contrôleur.
Votre ActionFilter sera quelque chose comme ceci:
public class MyExpirePageActionFilterAttribute : System.Web.Mvc.ActionFilterAttribute
{
public override void OnActionExecuted(System.Web.Mvc.ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
filterContext.HttpContext.Response.Expires = -1;
filterContext.HttpContext.Response.Cache.SetNoServerCaching();
filterContext.HttpContext.Response.Cache.SetAllowResponseInBrowserHistory(false);
filterContext.HttpContext.Response.CacheControl = "no-cache";
filterContext.HttpContext.Response.Cache.SetNoStore();
}
}
Voir this article pour plus d'informations.
Si vous voulez ceci sur toutes les actions de toute votre application, vous pouvez réellement appliquer une ActionFilter à toutes les actions en utilisant un ActionFilter global mis en place dans votre Global.asax:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalFilters.Filters.Add(new MyExpirePageActionFilterAttribute());
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
Oui Je suis d'accord pour créer un filtre ActionFilter. Et j'étais en train de créer ça. Donc je suppose que cette approche est validée en fonction de vos réponses. Qu'est-ce que je veux un retour sur était ce qui se passe à l'intérieur du filtre de theat. Est-ce que les 5 lignes que j'ai ont du sens ou y a-t-il une meilleure façon de le faire? Merci. – kolhapuri
@kolhapuri Je vois, consultez ce [lien ici] (http://stackoverflow.com/questions/1906163/how-to-force-a-page-refresh-while-pressing-the-back-button-in- mac-safari) qui décrit quelqu'un qui veut empêcher Safari de mettre en cache la page précédente. – Swaff
Entré à travers cela aujourd'hui et il a résolu un problème que j'avais! –