2012-01-31 10 views
5

私はデータベースからの画像を表示する非常に単純なASP.NET MVCサイトを持っています。ユーザーはいくつかの検索パラメータを入力し、ビューは検索条件に一致するデータベースからのイメージのリストを返します。ASP .NET MVCビュー間にたくさんのパラメータを格納

ページ番号に応じて、データベースから取得した一定数のイメージをスキップします。私は最初のページのためにこれが働いている。現時点では、ビュー間に検索パラメータを格納するメカニズムがないため、結果の2番目のページをクリックすると、検索パラメータが失われます。

どのような方法が最適ですか。私は多くの検索パラメータを持つことができます。私はそれらをすべてセッションや隠されたフィールドに保存する必要がありますか?それはハックのように感じる。検索パラメータを保持し、それをセッションに保存する別個のViewModelを用意する必要がありますか?

典型的なアプローチは何ですか?

答えて

1

一般的に、隠しフィールドには横断印刷データを格納します。スケーラビリティのために、セッションは、セッション全体の関連データに限定されるべきです。隠しフィールドにデータを置くと脆弱性が発生する場合は、ビューモデルをシリアライズし、非表示フィールドとして暗号化することを検討できます。それをURLに入れることは別の選択肢ですが、そこに置くことができるコンテンツの量には限りがあります。

+0

ありがとうございました。私は、ビューモデルをシリアライズし、単一の隠しフィールドを持つという考えが好きです。私はWPF/WinFormsの背景から来て、ページに隠れたフィールドがたくさんあるというアイデアは、気分がいいとは言えません。私はそれと一緒に生きなければならないと思う。私はもう少し検索を行いましたが、これは最も一般的なアプローチのようです。 – Lance

1

私はあなたの「次へ」と「前の」リンクのクエリー・ストリングにそれらをすべて入れます。これにより、訪問者は完全なURLをブックマークし、同じソートとフィルタ設定で同じページに戻ることができます。

関連する問題