繁体   English   中英

在ASP.net MVC中缓存数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM