Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ASP.NET MVC ViewEngine ViewLocationCache.GetViewLocation returns null

I am following Chris Pietschmann's solution for theming in ASP.NET MVC.

One thing I have noticed is that the view name is not being retrieved from the ViewLocationCache on subsequent requests. I am using ASP.NET MVC 2.0 RC

When the following code is executed:

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

and I hover over this.ViewLocationCache it just returns {System.Web.Mvc.NullViewLocationCache} - suggesting nothing was added?

like image 598
Ben Foster Avatar asked Jan 24 '10 12:01

Ben Foster


1 Answers

ViewLocationCache only works in release mode by default (setting <compilation debug="false"> in web.config).

To enable ViewLocationCache in debug mode:
In a custom view engine that inherits from WebFormViewEngine, set the ViewLocationCache in your ViewEngine's constructor like so:

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

You can also override the default cache timespan values if you wish.

like image 76
Ben Foster Avatar answered Nov 14 '22 22:11

Ben Foster