2011-09-22 82 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