2

現在、MVC が Web アプリケーションの新しいメジャー バージョンに適しているかどうかを調査しています。一部のユーザー設定に従って動的にレンダリングされる、Web パーツを備えた既存の Web アプリケーションがあります。各 Web パーツには独自のデータと独自のロジックがあります (たとえば、ユーザー情報を含む 1 つの Web パーツ、現在ログインしているユーザーを含む 1 つの Web パーツ、予定を含む 1 つの Web パーツなど)。

達成する必要があるのは (私が思うに)、いくつかの部分ビューを含む単一のビューをレンダリングすることです。各部分ビューは異なるモデルを表し、独自のロジックを持ちます。

単一のビュー内に複数の部分ビューを配置する方法を理解しましたが、各ビューのビジネス ロジックを処理する方法がわかりません (「部分コントローラー」で?可能であれば、al?)、各ビューのモデルを処理します。 ?

そのため、主な目的は、それぞれ独自のロジックとデータを持つ複数の動的ビュー (ユーザーの構成に従って) を持つページをレンダリングすることです。次に、たとえば部分ビューでボタンをクリックすると、対応するコントローラーが呼び出されてイベントが処理され、更新された部分ビューが返されます。部分ビューは疎結合で、非同期に更新する必要があります。

これまで見てきたことから、ほとんどのチュートリアルとドキュメントは、各部分ビューのビジネス ロジックとモデルを分離する方法ではなく、MVC 全般に焦点を当てています。

だから私はこれを行う方法を尋ねていませんが、

  • MVC 4または5でこれを簡単に達成できますか?

  • これに関する実際の良い例やチュートリアルを知っている人はいますか?

誰かが私を正しい方向に向けたり、これについていくつかの考えを共有したりできることを願っています...

4

1 に答える 1

1

各 Web パーツのアクションを持つ 1 つ以上のコントローラーを作成できます。

関連するすべての Web パーツを同じコントローラーにグループ化しますが、Web パーツごとにアクションと View+ViewModel を作成します。次に、Html.RenderAction メソッドを使用して、ページ/メイン ビューでこれらのアクションを呼び出します (そして Web パーツを配置します)。

免責事項: Html.RenderAction を呼び出すたびに完全な mvc フローが作成され、コントローラー、モデル、およびビューがインスタンス化され、最終的にすべてがレンダリングされ、値がページ/メイン ビューに渡されます。多くの Html.RenderAction があると、ページの作成が大幅に遅くなる可能性があります。Unity のような DI/IoC を調べてコントローラーの再利用を検討するか、System.Web.Mvc.DependencyResolver を調べて自分でコントローラーの作成を処理することができます。

于 2014-01-07T14:21:26.670 に答える