1

我有 asp.net mvc web 应用程序,使用 .net 3.5

我想在 UI Logic 层中使用缓存。

我读到了

1-Cache Class

http://msdn.microsoft.com/en-us/library/system.web.caching.cache(v=vs.90).aspx

2-Caching with HTTP headers

http://www.dotnetperls.com/cache

我不确定有什么区别以及我应该使用哪一个。

此外,如何配置每个缓存?

项目 1- 仅在网络配置中?

项目 2- 仅以编程方式?

更新:

我试过了

使用 System.Web.Caching;

    private string GetTitlePerBDataId(Guid changeRequestDataId)
    {
        var key = string.Format("{0}_{1}", TITLE, changeRequestDataId);

        if (System.Web.Caching.Cache[key] == null)
        {
            Cache[key] = mBundlatorServiceHelper.GetData(changeRequestBundleDataId).Title;
        }

        return Convert.ToString(Cache[key]);           
    }

But got class name is not valid in this point超过Cache

4

1 回答 1

4

Cache 类在服务器上的内存缓存中。你可以在那里缓存对象和其他东西。

使用 http 标头缓存,定义客户端/代理如何缓存输出。

如果您查看 System.Web.Caching.Cache 的文档,它会说

有关此类实例的信息可通过 HttpContext 对象的 Cache 属性或 Page 对象的 Cache 属性获得。

所以你只能通过 httpcontext 使用它。

private string GetTitlePerBDataId(Guid changeRequestDataId)
{
    var key = string.Format("{0}_{1}", TITLE, changeRequestDataId);

    if (System.Web.HttpContext.Current.Cache[key] == null)
    {
        System.Web.HttpContext.Current.Cache.Insert(key, mBundlatorServiceHelper.GetData(changeRequestBundleDataId).Title);
    }


    return Convert.ToString(System.Web.HttpContext.Current.Cache[key]);           
}
于 2012-04-24T13:31:00.080 回答