2015-10-14 32 views
0

我正在關注此MSDN tutorial以實現自定義緩存機制。在Global.asax,我加了這一點:使用VaryByCustom實現輸出緩存:自定義字符串在哪裏去?

public override string GetVaryByCustomString(HttpContext context, string arg) 
{ 
    if (arg == "minorversion") 
    { 
     return "Version=" + context.Request.Browser.MinorVersion.ToString(); 
    } 
    return base.GetVaryByCustomString(context, arg); 
} 

而在ASPX文件,我添加了這個:<%@ OutputCache Duration="10" VaryByParam="None" VaryByCustom="minorversion" %>在頁面的頂部。

我不明白的是如何使用Response.Cache.SetVaryByCustom("minorversion");以及在何處設置字符串參數,該參數在運行時基於字符串設置緩存。例如,如果在代碼隱藏文件的Page_Load函數中設置了一個名爲TheLanguage的字符串變量,那麼我如何以及在何處指定我希望緩存根據此字符串的值而變化?

謝謝。

回答

1

所有的工作都是在global.asax方法GetVaryByCustomString中完成的。您可以指定希望頁面變化的海關字符串的名稱,您可以將其命名爲任何您想要的內容,但這只是用作GetVaryByCustomString方法的一個鍵。如教程所示,如果你想根據例如「minor version」你可以爲這個(「minorversion」)創建一個名字,然後根據context.Request.Browser.MinorVersion.ToString()來實現它。對於由GetVaryByCustomString和提供的參數返回的字符串的每個變體,您將得到不同的緩存輸出。

HTH。

+0

好的,謝謝你的回答。我實際上意識到我可以通過改變URL來實現緩存,因此我甚至不需要改變自定義。無論如何,謝謝你,並接受以防止他人幫助他人。 – frenchie

相關問題