ユーザー、管理者、ショップ、フォーラムなどのエリアを作成しています
各領域には、独自のControllers、Models、Viewsフォルダーがあります。ルートモデル、ルートコントローラー、ルートビューでは、コンポーネントを共有しています。
構造A:
Root/ -> Models/, Controllers/, Views/
Root/User/ -> Models/, Controllers/, Views/
Root/Admin/ -> Models/, Controllers/, Views/
Root/Shop/ -> Models/, Controllers/, Views/
Root/Forum/ -> Models/, Controllers/, Views/
私は間違っているかもしれませんが、各ビジネスロジックグループでMVフォルダとCフォルダを繰り返すのは本当に乾燥しているようには見えません。より良い構造は、メインフォルダーとしてMVとCを使用し、それらの中にビジネスロジックグループをレイアウトすることだと考えていました。
構造B:
Root/Views/ -> User/, Admin/, Shop/, Forum/ ...etc
Root/Models/ -> User/, Admin/, Shop/, Forum/ ...etc
Root/Controllers/ -> User/, Admin/, Shop/, Forum/ ...etc
しかし、このようにフォルダーを構造化すると、Webサイトの論理機能を分割する領域(またはユーザーの観点からはサブフォルダーパス)の機能が失われます。
例えば
構造Aを使用すると、次のことができます。
www.mywebsite.com/Users(area)/Account(controller)/LogOn(action)
www.mywebsite.com/Admin(area)/Account(controller)/LogOn(action)
同じコントローラー名とアクション名を異なる領域で使用できることに注意してください。
構造Bの場合、私にできる最善のことは次のとおりです。
www.mywebsite.com/AdminAccount(controller)/LogOn(action)
www.mywebsite.com/UserAccount(controller)/LogOn(action)
領域のない単一ワードのサブフォルダーの結果を達成することはできません。それだけではない場合、ここでのコントローラー名はすぐに長くなり、乱雑になる可能性があります。言うまでもなく、同じcontroller.csファイルにスタックするアクションの大きなグループがあります。
それで、とにかく、私のポイントは、構造Bが私にとってより理にかなっていると思った場合、それを達成するためにルーティングを構成するにはどうすればよいですか?