在Web窗體控件我可以緩存單獨的控制與一個OutputCache線,如響應:部分緩存剃刀幫手
<%@ OutputCache Duration="240" VaryByParam="none" VaryByCustom="none" %>
我如何做同樣的用剃刀幫手?
@Helper HelperName(Vars)
' Do stuff, and cache it, return from cache as per parameters etc
End Helper
在Web窗體控件我可以緩存單獨的控制與一個OutputCache線,如響應:部分緩存剃刀幫手
<%@ OutputCache Duration="240" VaryByParam="none" VaryByCustom="none" %>
我如何做同樣的用剃刀幫手?
@Helper HelperName(Vars)
' Do stuff, and cache it, return from cache as per parameters etc
End Helper
利用兒童的行動,這將允許你使用同樣的方式將[OutputCache]
屬性,你會與WebForm的控制。
利用內存中緩存的System.Runtime.Caching
。請參閱:https://msdn.microsoft.com/en-us/library/vstudio/ff477235%28v=vs.100%29.aspx?f=255&MSPPError=-2147217396
然而,即使你去與#2,我建議你關閉移動你的代碼爲實際HtmlHelper
延伸,而不是使用剃刀助手。我不確定爲什麼微軟甚至在這個世界上做出了這些可能,但他們應該像瘟疫一樣避免。它們不會在運行時才被編譯,這意味着如果您有錯誤,只有在正確的環境下訪問正確的頁面時纔會瞭解它,而不是在構建過程中立即通知。更糟糕的是,測試Razor助手幾乎是不可能的,這使得你很可能會引入現場爆發的錯誤。
「助手」只是編譯視圖中的函數。設置你的項目預編譯的意見和編譯錯誤將被發現:) –
這隻適用於發佈時,並且我個人更喜歡知道我的代碼在得到那麼遠之前已損壞。無論如何,這對測試這些問題沒有任何影響,我們都應該測試我們的代碼,對吧?對?!? ;)簡單而簡單,它們是反模式。有更好,更強大的方法來完成同樣的事情,所以請使用它們。 –
只是建議像*瘟疫*這樣的術語不適合描述什麼基本上是基於函數調用的片段:)大多數工具都有用處。 –
在Asp.Net Mvc 6中,您可以使用<cache>
標籤助手來緩存部分視圖。
<cache expires-after="@TimeSpan.FromMinutes(10)">
@Html.Partial("_WhatsNew")
*last updated @DateTime.Now.ToLongTimeString()
</cache>
http://blogs.msdn.com/b/cdndevs/archive/2015/08/06/a-complete-guide-to-the-mvc-6-tag-helpers.aspx
助手只是功能渲染HTML,而不是部分頁面的片段。緩存不適用於助手。 –