2008-10-07 3 views
1

Donc, je regardais sur mon utilitaire de cache standard lors de la préparation à l'unité de tester un contrôleur et pensé, hey, accède à la HttpRuntime.Cache directement considéré comme nuisible dans MVC?L'utilisation de HttpRuntime.Cache a-t-elle changé dans ASP.NET MVC?

Je place le cache dans une classe de proxy qui implémente une interface de type cache (beaucoup plus simple) afin que je puisse la simuler pendant les tests. Mais je me demande si cela a déjà été fait pour moi dans le nouveau cadre. Cependant, je ne trouve rien.

est ici une idée de la façon dont je le fais:

public ActionResult DoStuffLol(guid id) 
{ 
    var model = CacheUtil.GetOrCreateAndStore(
        "DoStuffLolModel", 
       () => 
        { 
        /* construct model here; time consuming stuff */ 
        return model; 
        }); 
    return View("DoStuffLol", model); 
} 

Ainsi, a les vieux modèles d'accès au cache changé? Existe-t-il de meilleurs modèles pour la mise en cache des résultats d'action dans MVC?

Répondre

1

Ajoutez l'attribut OutputCache à votre action de contrôleur pour indiquer à l'infrastructure de mettre en cache la sortie pour vous. Vous pouvez en savoir plus sur cet attribut dans ScottGu's blog post on ASP.NET Preview 4.

Don't combine this with the Authorize attribute, cependant.

+1

Ceci est uniquement pour la mise en cache de toute l'action du contrôleur. Pour mettre en cache seulement des morceaux de données, les mécanismes n'ont pas changé dans ASP.Net MVC. –