0

私はMVCサイトをいくつかのアセンブリに分割することで少し遊んでいます(以前にいくつかの問題に遭遇しました)。

これでほとんどすべてが機能し、見つかった外部アセンブリをロードするメインのMVCプロジェクトを取得しました。外部アセンブリは基本的に外部領域です。ビューとweb.configをメインサイトのAreas-folderにコピーしてもらうと、すべてが正常に機能しました。さて、そのフォルダはしばらくすると少し肥大化し始める可能性が高いので、代わりにエリアアセンブリのリソースとしてビューを追加してみようと思いました。それがどのように機能するかを確認してください。

VirtualPathProvider私自身と私自身を作成し​​、すべてが順調だっVirtualFileたという考えでそれらを登録しました。次のビューロードではなく、最初のロードでに追加されHostingEnvironmentたもののみを使用することがわかりました。..わかりました。独自のVPPを使用するように実装することで、これを回避する方法の例をいくつか見つけました。しかし、ええ、これはMVC3の実行可能なソリューションではないようです。VirtualPathProviderHostingEnvironmentViewEngineViewEngine

結局のところ、2つの「キー機能」のように見えても実装もRazorViewEngineされていません。これらはから継承されています、そしてあなたは何を知っていますか?これらのメソッドは..としてマークされています。WebFormViewEngineFileExistsIsValidPathBuildManagerViewEnginesealed

MVC 3でこれを試したことがあり、おそらく私を正しい方向に動かすことができる人はいますか?私はMVC3のソースをかなり前から見つめていますが、これを行う方法がわかりません。

4

1 に答える 1

1

今は少し馬鹿げているようですが、VPPのロードが遅すぎたようです。持っていたのですが、代わりApplication_Startに移動すると、によって使用されました。(したがって、の実装は必要ないようです、wey!)PreApplicationStartMethodViewEngineViewEngine

問題は、リソースとして保存されているビューにアクセスしようとすると、レンダリングする代わりにダウンロードできることです。しかし、これとは異なります。

于 2010-11-22T15:22:51.693 に答える