4

私は現在MVCアプリケーションをビルドしています(特にASP.NETですが、これはもっと広い質問です)。私はこれについて、いくつかの異なる状況で尋ねられたのを見ましたが、私はそれらの議論から自分の状況を明確にすることができませんでした。私もいくつかのアイテムを持っているアイテムはいつMVCアーキテクチャで独自のコントローラを持つべきですか?

  • にHomeController
  • AccountController
  • EventController(お客様がイベントを持っている)
  • MenuController(サイトナビゲーション)
  • ReportController

:私は、次のようなコントローラーを持っていますコントローラーであまり明確に管理されていないのですが、これが私の質問が出てくる場所です。サインアップした後、顧客はrequiですビジネス情報、支払いカード、銀行口座、マネージャーの連絡先(名前/電話)など、彼らの "プロフィール"のさまざまな側面を記入してください。また、など自分の銀行口座情報について似たような、決済カード、管理者を、持っているだろう

[HttpGet] 
    public ActionResult Business() 

    [HttpPost] 
    public ActionResult Business(...) 

現在のようなポスト/取得機能と、「ProfileController」を作成しました

これは間違っています。これをすべてAccountControllerに移動する必要がありますか?これらのアイテムは実際に自分のコントローラーに値するものではありませんか、またはこれらのコンポーネントのそれぞれに独自のコントローラーが必要ですか?

答えて

4

MVCアプリケーションの開発は、RESTアプリケーションの開発に非常に役立ちます.RESTの原則をMVCアプリケーションの開発に適用することができます。まず、リソースの観点から考える必要があります。 RESTごとに、リソースはURLを通じてアクセスできるエンティティです。

あなたが上で話している各モデルがリソースであり、ユーザーが別のURLを介してアクセスできると思えば、単一のAccountControllerがうまくいれば別々のコントローラーを作成できます。

リソースとURLをスケッチすると、アプリケーションで作成するコントローラの数を簡単に特定できます。

+0

ユーザーはログインして[プロフィール]をクリックし、個々のアイテムをクリックしてビジネス、銀行口座、クレジットカードなどの項目を編集するための概要画面を表示します。誰かがログインして、[プロフィール]> [銀行口座]をクリックし、アカウントの一覧を表示します。その後、個々の銀行口座をクリックして編集することができます。クレジットカードと同様のものがあり、単一のビジネス(または複数のビジネスを運営)を管理するものがあるとします。上記のあなたのコメント、またはそれでもAccountControllerの正当な部分として "リソース"としてこれらの資格を得られるでしょうか?ありがとう – Josh

+0

すべてがリソースとして認定されています!私は、 "プロファイル"と呼ばれるMVCプロジェクトに別の "領域"を作成し、それぞれ別のコントローラを作成します。 – VJAI

+0

私はまた、イベントの登録者を募集しています。これはかなり単純なプロセスで、わずか2つのデータだけを求めています。イベントの登録は、ユーザーが(ポップアップダイアログで処理するのに十分シンプル)、リストに(グリッドに)、承認されて(簡単に)開始する必要があります。それは非常に簡単なエンティティです。これはEventControllerに属しますか、または私はEventRegistrationControllerを作成する必要がありますか?後者の戦略では、多数のコントローラーで終わる可能性があります。 – Josh

関連する問題