2009-04-18 9 views
0

私はASP.NET MVCで学習プロジェクトを書いています。私はユーザーの本を表示するページ "Books"を持っており、このようなページにはいくつかのソートとフィルタリングオプションがあります。ASP.NET MVCページの設定を保存する


ブックページ

ソートパラメータ:タイトル、年、...著者 フィルタのパラメータ:未読読む、...


ユーザーは、「タイトルのようなソートパラメータを選択コントローラーはタイトルごとにソートしてviewに戻ります。ユーザーが「Read」フィルターを選択すると、リストされたブックを「Title」でソートし、「Read」パラメーターでフィルターします。

私が知る限り、これを行うための並べ替えとフィルタのパラメータを保存する必要があります。私はセッション、HttpContext、Tempdataのコンセプトについて混乱しているため、最も簡単で簡単な方法は何ですかMVC。私は古典的なASP.NET Webformsセッションの方法を使用してこれを行うことができますが、セッションを使用すると問題が発生する可能性があります。どのような選択肢は、これを行うための最良の簡単な方法は何ですか?

答えて

0

ユーザーがサイトをナビゲートしてからページに戻るときに、選択内容を永続化するかどうかによって異なります。永続化する必要がある場合は、セッションに選択肢を格納することがこれを行うための合理的な方法です。その選択がその特定のページのみである場合、その選択をViewDataに入れて、ビュー内の選択をViewData(またはModel)の値によって駆動することができます。この方法では、ページがブラウザに返されるときに、すべてのラウンドトリップの選択が正しいデフォルトになります。

私の個人的な感想は、セッション全体で選択肢を保持しておかなければならず、自分の値をセッションに保存しておくことです。

0

MVCフレームワークには、いくつかの素晴らしいオプションがあります。 1つはあなたのための情報を格納するあなたのフォーム上に隠された入力を持っています。だからあなたがリゾートボタンを押すと、ソート順を決定するためにそのフィールドをキー入力します。

もう1つ、よりエレガントな方法は、ボタンに関連付けられた値を持つことです。タイトルをヒットした場合はタイトルで並べ替えます。著者がヒットすると、著者によって並べ替えられます。コントローラーはこれを検出することができます。

最後に、このすべてを自動的に行う優れたjavascriptコントロールがあります。心に浮かぶのは、絶対に素晴らしいEXT Gridコントロールです。それはjavascriptでいくつかの作業が含まれていますが、それはそれだけの価値がある!希望により、