2010-06-21 2 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

Попробуйте поместить код в файл codebehind элемента управления Page_Load или Page_Init. Я подозреваю, что, поскольку ваш код встроен в ваш ascx-файл, он выполняется слишком поздно в жизненном цикле элемента управления.

+0

Это файл ascx, я попытался поместить код в Page_Load, но без результатов. Если я выберу адресную строку и нажмите клавишу ВВОД, она использует кешированную версию, но я нажимаю ссылку, которая переместится на ту же страницу или обновит страницу, а затем снова отобразит страницу. –

+0

Этот частичный вид не связан ни с одним действием. Должен ли я установить частичное представление наследовать от действия вместо объекта из представления и установить там outputcache? (В действии ...) –