私が今していること
今のように、取り組む必要がある新しいプロジェクトがあるたびに (これらのプロジェクトはすべて、かなり一般化された機能のベースを使用しますが、それぞれにカスタム機能や癖などがあります)、ベースをコピーするだけです。プロジェクトを作成し、コピーした基本プロジェクトを変更して、カスタム機能を追加します。
アイデア
(私はVisual Studio 2012でASP.NET MVC4を使用しています)
基本的に、「ベースプロジェクト」が必要です:
ベース プロジェクト
-
コントローラー-モデル -
ビュー
カスタム プロジェクト
-
コントローラー-モデル -
ビュー
私の MVC プロジェクトのベースとして機能します。次に、新しいプロジェクト (基本プロジェクトからスピンオフ) を作成するときに、基本プロジェクトをサブプロジェクトとしてソリューションに含めます。新しいプロジェクトでは、コントローラー/モデル/ビューを記述するだけで済みます。ベースとは異なります(それらをオーバーライドしたい、または同様のものを使用したいだけです)。
このようにして、ベース プロジェクトを変更すると、すべての異なるカスタム プロジェクトのベース プロジェクトも更新されます。このようにして、ベース プロジェクトを更新/バグ修正/etc することができ、各カスタム プロジェクトを手動で更新して含める必要はありません。この新しい基本機能。
問題
私が望んでいるのはMVCが処理するのが少し奇妙であることは理解していますが、ルーティングエンジン全体を思い通りに動作させることができると思いますが、これに対する解決策があるかどうか疑問に思っていました。実装する。これがやりたいと思うのはごく普通のことだと思います。それとも、問題全体について間違って考えていますか?
私が試したこと
ここまでで、基本プロジェクトとカスタム プロジェクトを作成しました。カスタム コントローラーにアクションが存在しない場合、基本機能をカスタム プロジェクトに表示できますが、基本プロジェクトはカスタム プロジェクトのビューを使用します。 Action ですが、カスタム プロジェクトに存在しない場合は、ベース プロジェクトで独自の Action と View を使用する必要があります。
基本的に、私が行った場合: http://mytest.com/Home/Index
ベース プロジェクトには HomeController と Index Action がありますが、カスタム プロジェクトにはどちらもありません。ベース プロジェクトのビューがコピーされていないため、ルーティング エンジンはベース コントローラーに一致するビューを見つけることができません。出力ディレクトリ。
結論
基本的に、私はいくつかの一般的なガイダンスを探しています。私はこれを間違った方法で見ていますか?やる価値はありますか?
また、誤解を見つけた場合は、修正してください。
御時間ありがとうございます。