質問

新しい Microsoft asp.net mvc 実装は、アプリケーションのパーティショニングをどのように処理しますか。たとえば、次のようになります。

--index.aspx
--about.aspx
--contact.aspx
--/feature1
--/feature1/subfeature/action
--/feature2/subfeature/action

私が言いたいのは、すべてをビュー/コントローラーフォルダーのルートに置く必要があるようです。これは、Web フォームで構築された場合に大量のフォルダーとサブフォルダーが存在する可能性があるプロジェクトで作業するときに扱いにくくなる可能性があるということです。フォルダーを使用してアプリケーションを分割します。

MVC モデルは理解できたと思いますし、Web フォームと比較して見た目も気に入っていますが、実際に大規模なプロジェクトをどのように構築するかはまだ頭の中にあります。

役に立ちましたか?

解決

コントローラーの整理には問題ありません。組織を考慮してルートを設定するだけです。規則を変更したため、コントローラーのビューを見つけるという問題が発生します。まだ組み込み機能はありませんが、ActionFilterAttribute と ViewLocator を継承するカスタム ビュー ロケーターを使用して回避策を簡単に作成できます。次に、コントローラーを作成するときに、使用する ViewLocator を指定するだけで、コントローラーはビューを見つける方法を認識します。必要に応じてコードを投稿できます。

この方法は、ASP.NET MVC を使用してポータルのビューを分離するために別の人に与えたアドバイスと似ています。ここにあります 質問へのリンク 参考として。

他のヒント

ビューを配置する方法に関しては、必要に応じてビューをサブフォルダーに配置し、独自のビュー構造を作成できます。すべてのビューは、~構文を使用してフルパスで常に参照できます。したがって、Index.aspx を \Views\Feature1\Home に配置すると、~/Views/Feature1/Home/Index.aspx を使用してそのビューを参照できます。

他の読者に役立つと思われる優れたブログ投稿を 2 つ紹介します。

http://stephenwalther.com/blog/archive/2008/07/23/asp-net-mvc-tip-24-retrieve-views-from- Different-folders.aspx

この記事では、Haacked が上で説明した内容についてもう少し詳しく説明します。

http://haacked.com/archive/2008/11/04/areas-in-aspnetmvc.aspx

これは、サイトを「エリア」にグループ化するための優れた代替手段です。

追加情報ありがとうございます。そして、これは、この件に関する Billy McCafferty による別の優れた投稿です...

http://devlicio.us/blogs/billy_mccafferty/archive/2009/01/22/mvc-quot-areas-quot-as-hierarchical-subfolders-under-views.aspx

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top