2010-11-01 7 views
5

Je charge la liste de données en utilisant ajax et partial view (ascx) Mais j'ai un problème: ma réponse est mise en cache. J'essaie d'écrire Responce.Cache.SetExpires (DateTime.Now.AddDays (-1)) dans le fichier ascx mais il n'est pas aidéasp.net mvc disable ajax cache

Dans ASP.NET WebForms j'ai résolu ce problème en écrivant Responce.Cache.SetExpires (DateTime.Now.AddDays (-1)) dans codebehind. Donc, je voudrais savoir où je peux écrire Responce.Cache.SetExpires (DateTime.Now.AddDays (-1)) pour désactiver le cache.

+0

il ne devrait pas être mis en mémoire cache à moins que vous dites explicitement la directive ainsi de suite de l'action du contrôleur. c'est peut-être le navigateur? J'ai entendu parler de la mise en cache ajax obtient (mais pas de messages). – RPM1984

+0

oui la page est mise en cache par le navigateur. Mais il est facile à résoudre en utilisant SetExpires. Comment puis-je définir SetExpires avec MVC? – takayoshi

Répondre

12

Utilisez jQuery?

$.ajax({ 
cache:false, 
... 
}); 

ou Contrôleur/Action défini sur OutputCacheAttribute.

OutputCacheAttribute Class (System.Web.Mvc)

+0

Comment exactement OutputCacheAttribute aidera à désactiver le cache ?? –

+0

Cet attribut contrôle l'en-tête de réponse http (cache-control, expires etc). – takepara

+1

Je voulais dire qu'il serait bon ici de donner un exemple de code comment utiliser OutputCacheAttribute pour cela: [OutputCache (NoStore = true, Duration = 0, VaryByParam = "*")] –

0

Vous devez utiliser ajax POST pour la méthode de contrôleur qui renvoie JsonResult si vous souhaitez charger des données à partir du serveur de manière asynchrone.

+1

Si vous recevez * des données *, vous ne devez pas utiliser POST. Regardez les méthodes HTTP comme CRUD: Post = Créer, Lire = Lire, Mettre = Mettre à jour, Supprimer = Supprimer –

+0

Le commentaire de Arve est incorrect. ASP.Net MVC ne prend pas en charge les opérations REST et il est tout à fait acceptable d'utiliser une méthode POST pour extraire des données en fonction d'un paramètre. – dhochee