[英]Caching data in ASP.net MVC
一位朋友问我使用Output Cache
缓存数据,效果很好,但问题是我想从数据库中获取数据,然后与该数据进行交互,我的意思是,我想从数据库中获取大量数据,然后根据用户活动动态从海量数据中仅获取一些数据。
[OutputCache(Duration =600, VaryByParam ="none")]
public ActionResult GetData()
{
var result = context.People.ToList();
return View(result);
}
这是一个示例,但假设我想在我的视图中对数据使用分页,并且我想根据出生日期向每个人显示,例如默认页面当前星期,并带有一个名为“下一个”的链接称为“上一个”。 单击“下一个”链接时,我只想显示下个生日是生日的人,与“上一个”相同,只显示上周的生日。。但是,使用输出缓存,我显示的是相同的数据一直都是...是否有可能只在第一次设置时才与数据库进行交互,缓存该数据,然后与该数据进行交互而不再次读取该数据库? 您是否建议我使用与输出缓存不同的其他缓存工具?
除了缓存整个视图,您还可以将结果添加到会话状态中?
public ActionResult GetData()
{
if (HttpContext.Current.Session["peopleList"] != null)
{
return View((List<People>)HttpContext.Current.Session["peopleList"]);
}
else
{
var result = context.People.ToList();
HttpContext.Current.Session["peopleList"] = result;
return View(result);
}
}
您可以在Web.config或IIS中控制会话状态的持续时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.