2011-07-26 5 views
0

私はASP.NET MVC 3を使用して大規模なプロジェクトを構築したことはありませんが、フレームワークを設計した通りにフォームに入れて使用しようとしているので、Htmlヘルパーの狂気に出くわす前にMVC 3で「カスタムコントロール」を作成する最良の方法が何であるか不思議に思っていました。MVC 3でASCX-Codeの背後にあるのは何ですか?

ここには簡単な例があります:動的に生成されたナビゲーションメニューがあるかもしれません。メニュー項目は、サイト上の場所、静的メニュー項目、データベースに基づく動的メニューなどに基づいて決定されます。

NavMenuをビューから隔離しながらパーシャルビューまたはHTMLヘルパーのいずれかを作成することです。

私はこのような小さなコンポーネントの100sを持っている可能性があるので、パーシャルビューは行く方法があるようです。しかし、パーシャルビューは、(私の理解によれば)モデルロジックではなく、プレゼンテーション層のみに注意を払うと考えられています。同時に、私はメインビューのモデルに各部分ビューの100個のサブモデルを含めることは望ましくありません。

私はViewBagに物を置くべきでしょうか? ViewBag/ViewDataに部分ビューをレンダリングするのに必要なものを入力するためのベースコントローラが必要ですか?または、正しい方法はHtmlHelpersを作成し、C#を使ってすべてのHTMLを生成することです。

私の心配は、コードの保守性、パフォーマンス、デザイナーが同じコンテンツのさまざまな視覚的表現で遊ぶために製品にアクセスできるようにすることです。

つまり、MVC 3でASCX + Code-Behindと同等のものは何ですか?

答えて

1

データをモデルに集めて部分的なビューを返す個別のメニューコントローラで子アクションを実行する必要があります。
異なるモデルに同じモデルを使用できます。

+0

ビンゴ!私は子どもの行動について知らなかった。私はそれを調べるだろうが、それはまさに私が探していたものと思われる。 –

関連する問題