首页 > 代码库 > MVC3缓存(一):页面缓存

MVC3缓存(一):页面缓存

启用页面缓存


在MVC3中如果要启用页面缓存,需要在页面对应的Action前面加上一个OutputCache属性。

@{
    ViewBag.Title = "主页";
}

<!DOCTYPE html>
<html>
<head>
    <title>页面缓存</title>
</head>
<body>
	现在时间:@DateTime.Now.ToString("T")
</body>
</html>

在Controller中添加对应的Action,并加上OutputCache属性。

[OutputCache(Duration=5, VaryByParam="none")]
        public ActionResult Index()
        {
            return View();
        }

刷新页面即可看到页面做了一个10s的缓存。当页面中数据不是需要时时的呈现给用户时,这样的页面缓存可以减小时时的对数据处理和请求,当然这是针对整个页面做的缓存,缓存的力度还是比较粗的。


缓存的位置


可以通过设置缓存的Location属性,决定将缓存放置在何处。

Location可以设置的属性为(Any   Client   Downstream   Server   None   ServerAndClient)

Location的默认值为Any。一般推荐将用户的信息存储在Client端,一些公用的信息存储在Server端。

加上Location应该是这样的。

[OutputCache(Duration=5, VaryByParam="none",Location=OutputCacheLocation.Client ,NoStore=true)]
        public ActionResult Index()
        {
            return View();
        }

配置文件中通用设置


当我们需要对多个Action进行统一的设置时,可以在web.config文件中统一配置后进行应用即可。

在web.config中配置下Caching节点

<caching>
<outputCacheSettings>
    <outputCacheProfiles>
        <add name="Cache1Hour" duration="3600" varyByParam="none"/>
    </outputCacheProfiles>
</outputCacheSettings>

</caching>

那么在Action上使用该配置节点即可,这样的方法对于统一管理配置信息比较方便。

[OutputCache(CacheProfile="Cache1Hour")]
        public ActionResult Index()
        {
            return View();
        }



MVC3缓存(一):页面缓存