1

にニュースサイトを作りましたMVC。私はそれに検索機能を持っています。

Index ActionofSearch Controllerを呼び出すと、 からレコードを取得し、ページング用に This Search View has for をdatabase返します。Pag​​er の Next または Previous ボタンをクリックすると、 ofにリクエストが行われます。Search View.AJAX PagerAJAXPaging ActionSearch Controller

今、私は再び自分に電話をかけたくありませんDatabaseIndex actionの実行中に取得した結果を使用したいSearch Controller

今のところ私はSession[""]オブジェクトを使用しています。

このシナリオで状態管理に使用する方が良いものを知りたいです。

データベースからフェッチされた結果は、約 1000 ~ 5000、、(~200 文字) になる可能性がありArticleNameますArticleShortDescription

4

3 に答える 3

2

ViewBagまたはViewData現在のリクエストでのみ永続的です。そのため、それらは使用できません。 TempData次のリクエストまで持続しますが、これは何でもかまいません。そのため、Ajax 呼び出し (または後続の ajax 呼び出し) を行うのに十分長く持続するという保証はありません。

現実的にSessionは、この場合の唯一のまともなオプションですが、それでも最適ではありません. 多くの情報を保存することになりますが、クライアントから要求されることさえないかもしれません。それでも、不要になった後のクリーンアップも難しい場合があります。

最善の策は、ページングを考慮してデータベースを呼び出すことです。そのため、すべてのデータを単に引き出すのではなく、リクエストごとにデータのサブセットのみを返すようにします。

于 2014-10-09T08:29:08.773 に答える