2010-01-24 3 views
6

Je suis Chris Pietschmann's solution for theming in ASP.NET MVC. Une chose que j'ai remarquée est que le nom de la vue n'est pas récupéré à partir de ViewLocationCache sur les demandes suivantes. J'utilise ASP.NET MVC 2.0 RCASP.NET MVC ViewEngine ViewLocationCache.GetViewLocation renvoie la valeur null

Lorsque le code suivant est exécuté:

this.ViewLocationCache.InsertViewLocation(controllerContext.HttpContext, cacheKey, virtualPath); 

et je survolez this.ViewLocationCache il retourne juste {System.Web.Mvc.NullViewLocationCache} - suggérant rien n'a été ajouté?

Répondre

10

ViewLocationCache fonctionne uniquement en mode de sortie par défaut (réglage <compilation debug="false"> dans web.config).

Pour activer ViewLocationCache en mode débogage:
Dans un moteur vue personnalisée qui hérite de WebFormViewEngine, définissez le ViewLocationCache dans votre constructeur de ViewEngine comme ceci:

public MyCustomViewEngine() 
{ 
    ViewLocationCache = new DefaultViewLocationCache(); 
} 

Vous pouvez également remplacer les valeurs TimeSpan de cache par défaut si tu souhaites.

Questions connexes