2010-01-14 8 views
0

필자의 경우, 실제로 컨트롤러는 헤더를 "위치"로 지정한 RedirectResult를 사용하여 사용자를 전달합니다.Asp.net mvc 출력 캐시가 RedirectToAction과 작동하지 않습니다.

그럼 내가 페이지를 다시 실행하려고이

[OutputCache(Duration = int.MaxValue, VaryByParam = "none", NoStore=false)] 

같은 컨트롤러에 캐시를 적용하고, 내 Linq에 프로파일을 확인, 나는 아직도 할 해당 페이지를 다시 모든 쿼리를 볼 수 있습니다 1과 같이 실행하십시오.

어떻게 이런 일이 발생하지 않도록 할 수 있습니까?

+0

잘 모르겠어요. 나는 우리가 컨트롤러 액션을 볼 필요가 있다고 생각합니다. – jfar

+0

이 무엇을 의미합니까? 나는 출력 캐시가 모든 페이지를 캐시하고, 헤더를 포함한다고 생각했는데, 맞습니까? 이 헤더를 포함 할 경우, 내 생각에, 다시 컨트롤러를 실행하면 안됩니다. – DucDigital

답변

1

는 대신 쿼리를 캐시 할, 출력 캐시를 사용하는 수동 캐시를 수행 할 수 있습니다 누군가가 당신을 도울 수 있다면

public IQueryable<Category> FindAllCategories() 
{ 
    if (HttpContext.Current.Cache["AllCategories"] != null) 
     return (IQueryable<Category>)HttpContext.Current.Cache["AllCategories"]; 
    else 
    { 
     IQueryable<Category> allCats = from c in db.Categories 
              orderby c.Name 
              select c; 

     // set cache 
     HttpContext.Current.Cache.Add("AllCategories", allCats, null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(0, 0, 30, 0, 0), System.Web.Caching.CacheItemPriority.Default, null); 
     return allCats; 
    } 
} 
+0

이것이 답이라면, 받아들이는 것을 고려해야합니다. –

+0

은 tomorow, dan 님이 수락 할 수 있어야합니다. :) – DucDigital

관련 문제