2017-08-09 11 views
2

私はWebフォームを使用して数年後にMVCに移動していると私は、複雑なページについて質問があるとMVCは、私はコントローラを理解ASP.NET MVCと複雑なモデル

をどのように機能するかは、ビューに渡されたモデルを作成しますユーザに表示されます。

例としてマイクロソフトのホームページ(この記事の一番下に表示されています)を見て、黄色で強調表示された各領域は、ホームページに結合され、ホームコントローラ/インデックスメソッド。

私の質問は、以下に示すようなページが必要なモデルを作成し、レンダリングのためにビューに戻す方法についてです。

私の最初の選択肢は、それぞれのサブセクション(および各サブセクションのコンテンツ)を含む複雑なViewModelを作成し、それをビューに戻すことですが、複雑なページでは、

別のオプションは、サブセクションが表示されている各場所でRenderActionコールの束を使用することです(これが正しいかどうかわかりません)。

おそらく、PartialViews/ViewComponentが私に利用可能な別のオプションかもしれません。 (ViewComponentsが似ているようだんが)

Webフォームの世界では

何であるか複雑なページを与え、

だから私は、コードビハインドページでは、独自のロジックでのUserControlそれぞれを使用していただろうが、明らかに私はここにこれを行うことはできませんすべてをきれいにして清潔に保つために、1つまたは複数のモデルやビュー/ビューを生成することをお勧めします。あなたのアドバイスのための

感謝:)

enter image description here

+0

上記のオプションはすべて適切ですが、複数の要因によって最適です –

答えて

1

このデータは表示のみです。 1つの複雑なモデルにデータを持ち込み、そこから他の部分的なビューに渡します。

また、ページのロード時にメインデータ(ジャンボトロン)をロードしてから、jaxコールでajaxを呼び出すこともできます。フォームデータをサーバーに送信する必要がある場合は、それを個別に処理します。

表示専用ロールが異なるため、複雑なモデルはここで乱雑になりません。異なる部分ビューのモデルを作成して、そのクラスのプロパティとしてメインモデルに配置することができます。次に、これらのプロパティをレンダリングのために部分ビューに渡します。

再度、投稿データを個別に処理します。投稿データは最小限でなければならず、投稿データの少数のフィールドに対してメインページモデル全体を投稿することはありません。それにはjQuery ajaxを使用します。

関連する問題