2010-01-24 21 views
6

Estoy siguiendo solution for theming in ASP.NET MVC de Chris Pietschmann.ASP.NET MVC ViewEngine ViewLocationCache.GetViewLocation devuelve nulo

Una cosa que he notado es que el nombre de vista no se está recuperando de ViewLocationCache en solicitudes posteriores. estoy usando ASP.NET MVC 2.0 RC

Cuando se ejecuta el código siguiente:

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

y yo se ciernen sobre this.ViewLocationCache simplemente devuelve {} System.Web.Mvc.NullViewLocationCache - sugiriendo nada fue agregado?

Respuesta

10

ViewLocationCache solo funciona en modo de lanzamiento por defecto (configurando <compilation debug="false"> en web.config).

Para habilitar ViewLocationCache en modo de depuración:
En un motor de vista personalizada que hereda de WebFormViewEngine, establezca la ViewLocationCache en su constructor de ViewEngine así:

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

También puede anular los valores TimeSpan caché por defecto si tú deseas.

Cuestiones relacionadas