2011-12-21 2 views
2

에 도우미 메서드에 캐싱을 적용하는 방법 내 응용 프로그램에서 헬퍼 방법이 있고 내가 그것을의 asp.net MVC 2

[OutputCache(Duration = 3600, VaryByParam = "DetailsId")] 
public static Dictionary<string, object> GetData(int DetailsId) 
{ 

} 

에 있지만,이 함수가 호출 될 때마다 요청에 출력 캐싱을 적용했습니다.

도우미 메서드에서 출력 캐시를 적용 할 수 있습니까? 그렇다면 어떻게?

답변

3

출력 캐시 속성은 정적 또는 비 정적 메서드가 아닌 ActionResult에 있어야합니다.

public Dictionary<string,object> GetData(int DetailsId) 
{ 
//Try to get object from cache 
var model = (Dictionary<string,object>)HttpContextBase.Current.Cache["Data_"+DetailsId]; 
if(model==null) 
{ 
HttpContextBase.Current.Cache["Data_"+DetailsId] = model_from_store; 
return model_from_store; 
} 
else 
return model; 
} 
: 당신은 캐시 개체의 라인을 따라이 레벨 사용 무언가를 속성 OutputCache를 사용할 수 없습니다 한마디로 예를

[OutputCache(Duration = 3600, VaryByParam = "DetailsId")] 
public ViewResult GetData(int DetailsId) 
{ 

} 

를 들어