MVC3中使用输出缓存

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.UI;

namespace MvcSite.Controllers
{
    public class HomeController : Controller
    {
        [OutputCache(Duration = 10, VaryByParam = "id", Location = OutputCacheLocation.Any)]
        public ActionResult Index()
        {
            string id = Request.QueryString["id"];
            ViewBag.Message = "现在的时间是:" + DateTime.Now.ToString() + id;

            return View();
        }

        public ActionResult About()
        {
            return View();
        }
    }
}

添加一个[OutputCache]属性到一个单独的控制器行为或一整个控制器类。

 

Duration属性

缓存的秒数(1H=60*60)

VaryByParam属性

默认是none,如果在url中添加查询字符串在缓存过期前则保持同样的输出

如果改成VaryByParam = "*",那么表示要按不同的查询字符串缓存页面的独立副本

如果改成VaryByParam = "ID",那么表示要按查询字符传入的“ID”串缓存页面的独立副本,可以使用分隔号指定多个参数

Location属性

缓存存放的位置(Any、Client、Downstream、Server、None、ServerAndClient)

 

但是如果创建了数十上百个缓存页面,要修改这些页面的缓存就得修改所有页面,So我们可以在web.config文件中定义缓存设置

 <system.web>
    <caching>
      <outputCacheSettings>
        <outputCacheProfiles>
          <add name="mycacheset" duration="60" location="Server" varyByParam="id"/>
        </outputCacheProfiles>
      </outputCacheSettings>
    </caching>
 </system.web>

 [OutputCache(CacheProfile = "mycacheset")]

MVC3中使用输出缓存,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。