2010-06-21 4 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 키를 누르면 캐시 된 버전이 사용되지만 동일한 페이지로 이동하거나 페이지를 새로 고치는 링크를 클릭하면 서버가 페이지를 다시 렌더링합니다. –

+0

이 부분보기는 어떤 작업과도 관련이 없습니다. 부분 뷰를 뷰의 객체 대신 액션에서 상속 받도록 설정하고 거기에 outputcache를 설정해야합니까? (행동에서 ...) –

관련 문제