2011-09-22 86 views
0

我想缓存MVC 3 _ViewStart和_Layout页面,我正确地认为这些不默认缓存?问题是Web服务器或IIS中的VS bult应该在这些站点母版页中缓存我的图像,但似乎每次都会加载它们。输出缓存_ViewStart.cshtml和_Layout.cshtml在MVC 3

我可以把OutputCache属性放在控制器上,但我不能在上面的这些页面上,因为它们没有控制器。可能吗?

回答

2

_ViewStart_Layout只是最终标记的组成元素。因此,通过在某些控制器动作上使用[OutputCache]属性,您将缓存来自此操作(包括视图)的整个生成的HTML,并且实际上也缓存了这些元素。不幸的是,ASP.NET MVC 3不支持Donut Caching。它仅支持Donut Hole Caching。我想这是一个将要改进的地方,并且在未来的版本中增加了对它的支持。

+0

感谢Darin,如果我在这些页面中的所有内容都是静态的,而我只是想缓存它呢? – David

+0

@David,只需用OutputCache属性来装饰一些控制器动作,内容就会被缓存。 –

+0

但是我必须在所有控制器上执行此操作,难道我不能集中执行此操作吗? – David