IE Strikes Again!
Because of my recent discovery of the IE9 “feature” that makes it cache unlike every other browser, I had to come up with a small change to our caching scheme on my project. To be fair, the IE9 team is actually well within RFC definitions of how to handle “cache-control: private”, so I shouldn’t complain too much about it. Though, why is it always IE that causes me to do extra coding?Anyway, my solution was to add a “Default” OutputCache setting for all my MVC Controllers and then, to override these options on individual Controller Actions when needed. The problem is: I can’t find any information on whether or not an OutputCache directive on an Action will override one on the Controller.
So, I wrote a quick test app to test it out.
The Code
// default everything to a tiny cache time
[OutputCache(CacheProfile="ShortCache")]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
// change to a longer cache time
[OutputCache(CacheProfile = "LongCache")]
public ActionResult About()
{
return View();
}
}
Web.config mods
<system.web>
<caching>
<outputcachesettings>
<outputcacheprofiles>
<add duration="1" name="ShortCache" varybyparam="*">
<add duration="60" name="LongCache" varybyparam="*">
</add></add></outputcacheprofiles>
</outputcachesettings>
</caching>
</system.web>
No comments:
Post a Comment