2012-04-01 7 views
1

情報を表示する1つのメインパネルと、メインパネルで何が起こるかに基づいていくつかのパネルの1つを表示できるサイドパネルを含むレイアウトのWebページがあります。たとえば、メインパネルにはプロジェクトのリストが表示され、プロジェクトをクリックすると編集パネルが表示されます。または、削除パネルが表示されるはずのプロジェクトを削除することもできます。約5つまたは6つのパネルがあります。これはアプリケーション全体ではないので、メインパネルを部分的に表示することはできません。マルチパネルレイアウトを扱う方法

どうすれば実装できますか?基本的に私はコントローラーで2つのビューを返そうとしていますが、明らかにそれは不可能です。私の推測では、メインパネルはコントローラから返されたビューでなければなりません。しかし、どのようにサイドパネルを設定することができますか?どういうわけか、1つのコントローラアクション内で2つのビューを1つに結合できますか?または、2つのコントローラーを1つのアクションにリンクする必要がありますか?どうすればいい?

私は本当にASP.NET MVCを初めて使いましたが、私自身は自分自身でグーグル・グーグルで問題を抱えています。お待ちいただいてありがとうございます。

答えて

0

この場合、ViewModelを使用して複数のドメインモデルを収集し、ビューにdetailed hereとして渡すことができます(これは私のやり方です)。同様に、メインパネルオブジェクトを厳密に型指定されたオブジェクトとして渡し、ViewDataを使用して他のデータ項目を渡すこともできます。その後、

@{ Html.RenderPartial("ViewName", dataItem); } 
+0

感謝を。私は最後の選択肢と考えた。その結果、コントローラーの仕事をどのパネルに表示するかを把握しなければならないかなり大きなスイッチステートメントが得られるでしょうか? – garma

+0

部分ビューは、ビューのレンダリングを定義するための文字列を必要とし、ビュー上に多くのロジックを持つのではなく、コントローラから渡すことができます。 – AlexC

0

データワイズあなたは@AlexCが述べたように異なるパネルのためのデータを含む単一のビューモデルオブジェクトを渡す使用するを使用してデータを渡すことによって、それらをレンダリングし、個々のパネルのための別々の部分図を使用することができます。

UIワイズあなたはここに示したように異なるパネルをレンダリングするために、タブのjqueryのプラグインを使用することができます - http://jquerytools.org/demos/tabs/index.html