ASP.NET MVC ViewEngine ViewLocationCache.GetViewLocation returns null
Asked Answered
C

1

6

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?

Competitor answered 24/1, 2010 at 12:34 Comment(0)
C
10

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.

Competitor answered 27/1, 2010 at 12:51 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.