Ваш атрибут Output Cache должен быть в ActionResult, а не в статическом или нестатическом методе.
Например
[OutputCache(Duration = 3600, VaryByParam = "DetailsId")]
public ViewResult GetData(int DetailsId)
{
}
Короче говоря, вы не можете использовать атрибут OutputCache, этот уровень использует что-то вроде объекта Cache:
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;
}