2011-12-21 66 views
2

應用緩存我在我的應用程序的輔助方法,我已經在上面如何helper方法在asp.net MVC 2

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

} 

但每到這個函數被調用的請求應用輸出緩存。

我想知道我可以將輸出緩存應用於幫助器方法嗎?如果是,那麼如何?

回答

3

您的輸出緩存屬性需要位於不是靜態或非靜態方法的ActionResult上。

例如

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

} 

總之你不能使用的OutputCache屬性這個級別使用沿着緩存對象的路線的東西:

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; 
} 
相關問題