0
我有我的網頁,我使用自動完成jquery插件。這可能會從數據庫中過濾。但我不想向DB發出請求。所以我已經將它寫入List會話對象。每次我從這個會話過濾數據。我做錯了什麼或者有沒有其他方法可以做到這一點?asp.net mvc過濾數據
我有我的網頁,我使用自動完成jquery插件。這可能會從數據庫中過濾。但我不想向DB發出請求。所以我已經將它寫入List會話對象。每次我從這個會話過濾數據。我做錯了什麼或者有沒有其他方法可以做到這一點?asp.net mvc過濾數據
我會推薦你使用Cache對象而不是Session。請記住,該會話與特定用戶綁定在一起。因此,如果有其他用戶訪問您的網站,他也會訪問該數據庫。緩存對象對所有用戶都是通用的。因此,您的控制器操作可能看起來像這樣:
public ActionResult Foo(string q)
{
var data = HttpContext.Cache[q];
if (data == null)
{
data = FetchFromDb(q);
HttpContext.Cache[q] = data;
}
return Json(data, JsonRequestBehavior.AllowGet);
}
緩存中有任何限制。我可以寫10000行來緩存嗎? – AEMLoviji 2010-12-18 09:48:19
@AEMLoviji,這將取決於您在何處配置要存儲的緩存。默認情況下它存儲在內存中,所以限制是可用內存。但是你可以通過使用提供者來分發它。 – 2010-12-18 09:51:13
我明白你的意思。它默認存儲在服務器內存中作爲會話對象。 – AEMLoviji 2010-12-18 10:18:12