gpt4 book ai didi

asp.net-mvc - 如何在 asp.net mvc 2 中的辅助方法中应用缓存

转载 作者:行者123 更新时间:2023-12-04 06:03:57 24 4
gpt4 key购买 nike

我的应用程序中有一个辅助方法,并且已在其上应用了输出缓存

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

}

但是在每次请求时都会调用此函数。

我想知道我可以在 Helper 方法上应用输出缓存吗?如果是,那么如何?

最佳答案

您的输出缓存属性需要在 ActionResult 上,而不是在静态或非静态方法上。

例如

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

}

简而言之,您不能使用 OutputCache 属性,此级别使用与 Cache Object 类似的内容:
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;
}

关于asp.net-mvc - 如何在 asp.net mvc 2 中的辅助方法中应用缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8588555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com