1

私は MVC4 を学習中で、コントローラー分離のベスト プラクティスを理解しようとしています。ここまでで、サイトの論理ユニットごとにコントローラーを用意するとよいことがわかりました。

たとえば、レビュー、レストラン、レビュアーを保持するレストラン レビューのサイトがある場合、3 つのマッチング コントローラーを追加します。各コントローラは、エンティティのリスト ビューを作成する方法を知っています (おそらく、その他の関数もいくつかあります)。

ホームコントローラーは現在、「About」、「Contact Us」のビューを作成する方法を知っています...
トップ10のレビュアー/レビュー/レストランを表示するメインのインデックスアクションが必要です。これらの「トップ 10」リストは、専用コントローラーの対応するリストとは外観が異なります。

レビューの場合、フォルダ
Views => Reviews => _ReviewsTopTen.cshtml に部分ビューを作成することをお勧めしますか?

(このビューは、ホームコントローラーの Index アクションでのみ使用されます)

4

2 に答える 2

3

まず、あなたのマークアップを見て、そもそも部分ビューに分割する必要があるかどうかを判断します。そうでない場合は、ビュー自体を保持してもまったく問題ありません。それのために物事を抽象化しても意味がありません。

部分的なビューが必要であり、ホーム コントローラー内でのみ使用する場合は、ビュー > レビュー > _ReviewsTopTen.cshtml が適切な場所になります。

ただし、パーシャル内のマークアップがサイトの別のセクションと同じで、css スタイルだけが異なる場合は、Views > Shared でパーシャル ビューを作成して、複数のコントローラー ビューで使用できるようにする必要があります。

于 2013-03-20T13:07:40.620 に答える
0

コントローラーのロジック分離のベスト プラクティスは@Html.Action()、表示する必要がある論理ユニットごとにホーム ビューでメソッドを使用することだと思います。たとえば、ホーム コントローラー ビューで 10 個のレビューを表示する必要がある場合は、次のようになります。@Html.Action("TopTenReviews", "Reviews(<-controller name)")

于 2013-03-20T08:35:57.273 に答える