我有我使用自动完成jquery插件的页面。这可能会从数据库中过滤掉但我不想向DB提出请求。所以我把它作为List写入会话对象。每次我从这个会话中过滤数据。我做错了什么或者还有其他办法吗?
答案 0 :(得分:1)
我建议您使用Cache对象而不是Session。请记住,会话与特定用户绑定。因此,如果其他用户访问您的网站,他也会访问该数据库。 Cache对象对所有用户都是通用的。因此,您的控制器操作可能如下所示:
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);
}