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