2010-12-18 7 views
0

私はどこで私はオートコンプリートjqueryプラグインを使用するページがあります。これはデータベースからフィルタリングする可能性があります。しかし私はDBへのリクエストをしたくありません。だから私はリストとしてセッションオブジェクトにそれを書きました。毎回このセッションからデータをフィルタリングしています。私が間違ってやっていることやそれを行うための他の方法がありますか?asp.net mvcフィルタリングデータ

答えて

1

セッションの代わりにキャッシュオブジェクトを使用することをお勧めします。セッションは特定のユーザーに限定されていることに注意してください。だから別のユーザーがあなたのサイトに来たら、彼はデータベースにもヒットします。 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); 
} 
+0

キャッシュには制限があります。キャッシュに10000行書き込むことはできますか? – AEMLoviji

+0

@AEMLoviji、これは、キャッシュをどこに保存するかによって異なります。デフォルトではメモリに格納されているため、使用可能なメモリが制限されます。しかし、あなたはプロバイダを使ってそれを配布することができます。 –

+0

私はあなたを理解しています。デフォルトでセッションオブジェクトとしてサーバーメモリに格納されます。 – AEMLoviji