2011-09-13 13 views
1

私はディスクリートモジュールの概念を持つアプリケーションです。これらのモジュールはModulesフォルダにあります。各モジュールには、このModulesフォルダの下にフォルダがあります。これらのモジュールフォルダには、エリアの仕組みと非常によく似たControllers and Viewsフォルダがあります。MVCがビューを探す場所を拡張する方法

モジュールのコントローラがビューを返すときに新しい場所が検索されるように、検索する場所を拡張/変更したいと思います。

これはカスタムViewEngineを使用する必要があると考えていますが、具体的な内容は不明です。私が拡張できる特定のビューエンジンはありますか、まったく新しいものを書く必要がありますか?

カスタムビューエンジンを正しい方法で作成していますか、それとも良いルートがありますか?

+0

別々のプロジェクトに領域を持たせることも、ソリューションを別々にすることもできます。また、仮想ディレクトリ内の領域を、基本アプリケーションツリー内ではなく独自のbinフォルダーを持つフォルダーを指すようにすることもできます。これは、エンタープライズウェブサイトにあるものと似ています。私たちはASP.Netフォームでそれを持っていますが、私はエリアを持つMVC3の実装を書いています。私が今家にいなければ、あなたと共有します。キーは、appdomainのAssemblyResolveイベントです。 – gislikonrad

答えて

1

私は、これは、カスタムViewEngine

Correct thinkingが関与する必要があります考えています。

0

特定のビューエンジンを拡張する代わりに、ビューエンジンラッパーを実装して、ビューを配置するカスタムロジックが複数のビューエンジンで動作するようにすることができます。これはコントローラの値をcontrollerContext.RouteData.Valuesに一時的に置き換えることで、MvcCodeRoutingの動作です。そのため、場所の形式(たとえば、~/Views/{1}/{0}.aspx)が使用されている場合、それらのプレースホルダにカスタムの場所を挿入できます。

関連する問題