2009-06-23 3 views
1

は、基本的にはどのように私はこれを取得することができます。ASP.Net MVC:ファイル構造、コントローラ、およびビュー:管理者と管理者を分離するにはどうすればよいですか?私は安っぽいフォーラムのアプリケーションを作成する上で撮影したMVCを学ぶために:サイト名/フォーラム/インデックス</p> <p>背景対</p> <p>サイト名/管理/フォーラム/インデックス:

IMGAE!!1 http://byatool.com/wp-content/uploads/2009/06/stack-projectshot.jpg

さて、これらすべてのコントローラ/ビューは、管理者側の物事に対処:MVCについて何を知っている前に、私は基本的にこの、右のデフォルトのディレクター構造の中に飛び込みました。私が非管理サイドの作業に取り掛かるまで、これはすべて上質で素敵でした。現在、私は現在の設定をAdminおよびNon Admin対応のサイトに転送する方法を失っています。基本的に私は前まで入力されたとして:

サイト名/管理/フォーラム/インデックス - あなたが見ることができるように、

通常のユーザーのためのフォーラムの名前を、そのため - 管理

サイト名/フォーラム/インデックスについてフォーラムのコントローラは重複し、MVCではこれほど似ていません。

siteName/Forum/AdminIndexまたはsiteName/ForumAdmin/IndexすなわちForumAdminControllerを持っているのは本当に好きではありません。これは、奇妙な作業のように思えますし、Admin /管理者でなくても、その "フォルダ"(言葉の欠如)の中に何かに侵入することを禁止する。 (私はこれがルートを通して行われると仮定します)

私は本当にこれを取り除く方法があると思っています。

+0

私もこの質問があります。私は安らかなAPIを論理的なフォルダ構造にマップしようとしています。作者はすべてこれを解決しましたか? – Paul

答えて

2

あなたの管理者またはコンソールのWebアプリケーションは常に自分のプロジェクトに入るべきだと思います。こうすることで、イントラネット環境に展開する場合、メインサイトなどから特定の機能を隠す必要がある場合に、より多くのコントロールを行うことができます。これらの2つの懸案事項を1つのサイトに混同することはめったにありません。サイトが成長し、成長します。また、管理サイトでは、メインアプリケーションの設計などのメリットはほとんどありません。管理機能は通常、より直接的なレイアウト、画面の追加、セキュリティの強化などのメリットがあります。

http://console.sitename.com/forum/indexと考えてください。これははるかに明確で、あなたのフォーラムアプリケーションとの関係もまだあります。ここでの懸念は非常に分かれています。

1

MVCの美しさは、URLがASP.NET Webformsのように静的リソースに結びついていないことです。これを念頭に置いて、複雑なディレクトリ構造を作るのではなく、あなたが気に入っているコントローラを指し示すようにAdmin URLを作ることができます。過去に、管理機能をサブフォルダに入れることは、設定ファイルを使ってそのフォルダを簡単にロックすることができたので便利でしたが、ビューはURLのものとは別になっていても不要です。

通常、管理者用のルートは、管理用のコントローラで指し示すように設定するだけです。コントローラーは、コントローラークラスのAuthorizeデコレーターを使用して管理役割のユーザーのみにロックされます。そして、人々が正しい役割を果たしていることを確認するだけです。私のURLは、通常、「Admin/ManageUsers」の影響を受けるものです。たぶん、これにはいくつかの欠点がありますが、これまでのところ問題に遭遇していません。

0

私は両方の選択肢をしましたBitとAndrew presentと私はこのケースでは、別のAreaに管理用のものを置いたか、または管理用のフォルダにビューをまとめて、より良い概観を得たと思います。一方、フォーラムのサイトと管理サイトの両方でビューを再利用すると、Bitの代替案は非常に有効ですが、認可ルールによって機能が少し異なります。