2010-06-21 33 views
1

以下代碼在局部視圖中不起作用。ASP.Net Outputcache以編程方式不能在局部視圖中工作

<% 
    // Pages always expire at midnight. 
    Response.Cache.SetExpires(DateTime.Today.AddHours(24)); 

    if (variable > 0) 
    { 
     Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate); 
    } 
    else 
    { 
     Response.Cache.SetCacheability(HttpCacheability.Public); 
    } 
%> 

有誰能告訴我爲什麼?部分視圖不會被緩存,也沒有明顯的原因。我應該編寫代碼來激活緩存嗎?怎麼樣?

回答

0

嘗試將代碼放入控件的代碼隱藏文件Page_Load或Page_Init事件中。我懷疑這是因爲你的代碼在你的ascx文件中是內聯的,它在控件的生命週期中被執行得太晚了。

+0

這是ascx文件,我試着將代碼放在Page_Load中,但沒有任何結果。 如果我選擇地址欄並按下ENTER鍵,它將使用緩存版本,但我單擊一個鏈接進入同一頁面或刷新頁面,然後服務器再次呈現頁面。 – 2010-06-21 16:14:46

+0

此部分視圖不與任何操作關聯。我應該將部分視圖設置爲從視圖中的某個操作而不是一個對象繼承,並在那裏設置outputcache? (在行動中......) – 2010-06-21 16:20:27

相關問題