2010-11-19 11 views
0

私はASP.NET MVC 3の新機能で、他のツールからasp.net mvc 3にアップグレードする予定です。 現在のシナリオでは、ユーザー固有のもので、各製品にはPrimary Category、Category、Sub Categoryがあります。ユーザーがログインすると、ユーザーは(ページングを使用して)該当する製品のみを表示できます。左側のナビゲーションメニューでは、PrimaryCategoryをComboBox、CategoryおよびSubCategoryをTreeViewとして表示します(ナビゲーションセクションには、ユーザーに適用可能な製品のプライマリ/カテゴリ/サブカテゴリのみが表示されます)。このナビゲーションメニューはすべてのページ(マスターページなど)に表示されるので、ユーザーはCat/SubCatに簡単に切り替えることができます。Asp.net MVC 3とマスターページViewModelとカテゴリリスト

ナビゲーションメニューとページング(製品のリスト)に関する質問があります。 MVC 3(レイザービューエンジン)どのように私は主なカテゴリー(コンボボックス)でのナビゲーションセクションを埋めることができ、マスターページ上のツリービューとしてカテゴリ/サブカテゴリを使用して

  1. ?これらのコントロールがありますか、それともhtml + cssを使用するだけですか?

  2. このためのURL構文とルートマッピングは何でしょうか。 PrimaryCat、Cat、SubCat IdおよびPageNumberをマッピングとして渡す必要がありますか(つまり、/ products/1/2/3/1をすべてのURLに渡すか、PageNumberおよびクエリーストリングパラメータ(/ products/1?PCat = 1 & Cat = 2 & SUBCAT = 3)。ユーザーは、私はページングとデータグリッドなどの製品を表示することができますどのようにコンテンツのセクションのいずれかのカテゴリ/サブカテゴリを選択し、

  3. 。再度DataGridの任意のコントロールはありますか?私が持っている

  4. マスターページ(ShoppingBasket)の別のセクションで、ユーザーがバスケットに追加したアイテムを表示するので、ユーザーがそのページ全体を更新せずにデータグリッドからボタンを追加したときにそのセクションを更新したい。

抽象コントローラを使用してMasterPageにデータを渡すことに関してAsp.netのWebサイトでScottからのチュートリアルを読んだことがあります。

ご回答いただければ幸いです。事前に

よろしく Jhelumi

答えて

1

おかげで、あなたの質問のほとんどは、ユーザインタフェースに関連しており、それらを解決するための様々な方法があります。

質問1;はい、レンダリングを自分で行う必要があります。または、カテゴリをJavaScript配列にダンプし、jQuery Treeview Pluginのようなプラグインを使用してクライアント側でレンダリングすることもできます。

質問2;いずれにしてもうまくいくだろう。それはあなた次第です。

質問3と4はもちろん可能です。しかし、彼らは広すぎるので、明確な答えを与えるのは難しいです。具体的な例を尋ねるなら、私はいくつかのサンプルコードを提供しようとすることができます。

とにかく、私はdatagridや他のサーバー側のコントロールについて忘れることをお勧めします。 ASP.NET MVCの素晴らしい点の1つは、サーバーからクライアントに送信される応答を完全に制御できることです。ビューにモデルを渡すだけで(必要な場合)、そのビューはその情報がユーザーにどのように表示されるかを担当します。

+0

こんにちは、ありがとうございます。レンダリングにJqueryを使用することを考えていましたが、使用できるHTMLHelperコントロールを示すリンクが表示されていました。例: http://weblogs.asp.net/shijuvarghese/archive/2010/10/08/using-the-webgrid-helper-in-asp-net-mvc-3-beta.aspx http:// www。 mikesdotnetting.com/Article/128/Get-The-Drop-On-ASP.NET-MVC-DropDownLists また、パフォーマンスを考慮する代わりに、すべての製品を一度ユーザーに適用し、ストアするユーザーの要求を満たすためにそこに4rmを問い合わせます。どのように私はそれを行うことができますか?私はこれにEFとLinqを使用する予定です。 – Jhelumi

+0

@Jhelumi DBへのヒット数を減らすために、このパターンで組み込みのCacheオブジェクトを使用することができます: 'GetSomeEntity(){キャッシュ内の場合{return} else {dbから取得し、キャッシュに入れ、戻り}} '。これは、キャッシングを導入する最も簡単な方法です。もちろん、頻繁に必要とするこれらのオブジェクトを保持する静的クラスを持つこともできます。人々がEFやLinqを使っているときに、人々がキャッシングについて何をするかを見るために、他のいくつかの質問をチェックすることをお勧めします。 –

+0

@Jhelumiまた、サンプルアプリケーション(時間がある場合)を開発するか、フレームワークについて学ぶためにいくつかのソースコードを読むことによって利益を得ることができると思います。私はいくつかの答えを提供しようとしているが、私はASP.NET MVCがなぜWebアプリを開発するための強力で楽しいフレームワークなのかを強調していないと思う。 –

関連する問題