簡體   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