2010-12-18 105 views
0

我有我的網頁,我使用自動完成jquery插件。這可能會從數據庫中過濾。但我不想向DB發出請求。所以我已經將它寫入List會話對象。每次我從這個會話過濾數據。我做錯了什麼或者有沒有其他方法可以做到這一點?asp.net mvc過濾數據

回答

1

我會推薦你​​使用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); 
} 
+0

緩存中有任何限制。我可以寫10000行來緩存嗎? – AEMLoviji 2010-12-18 09:48:19

+0

@AEMLoviji,這將取決於您在何處配置要存儲的緩存。默認情況下它存儲在內存中,所以限制是可用內存。但是你可以通過使用提供者來分發它。 – 2010-12-18 09:51:13

+0

我明白你的意思。它默認存儲在服務器內存中作爲會話對象。 – AEMLoviji 2010-12-18 10:18:12