私が達成したいのは、純粋な単一のDLLとしてASP.NET MVCのAREAを分離したいのです。プラグインDLLとしてASP.NET MVC領域を作成する方法は?
- Blog.DLL
- Forums.DLL
- FAQ.DLL
それらのそれぞれが独自のデフォルトCSHTMLまたはASPXページで、個々のASP.NET MVCエリアです。リソース、JavaScriptなどを含む多くのページのインストール、移行、および保守は、長期的には本当に苦痛です。これらのほとんどがほとんど変化しないためです。
私の最終的なウェブサイトはこのようになります。
\MvcApplication
\bin
\MvcApplication.bin
\Blog.dll
\Forums.dll
\Controllers
\..
\Models
\..
\Views
\..
\Global.asax
\Web.config
Blog.dllを削除するだけで、私のアプリケーションは/ブログとすべてのページをサポートする必要があります。私は..私はエリアを追加することができるよりも、何かをカスタマイズし、そして唯一のCSHTMLページを追加したい場合は
\MvcApplication
\bin
\MvcApplication.bin
\Blog.dll
\Forums.dll
\Areas
\Blog
\Views
\Shared
\BlogLayout.cshtml <-- this will override the look
\Controllers
\..
\Models
\..
\Views
\..
\Global.asax
\Web.config
これは、単にbinフォルダ内のDLLをドロップすることで、ASP.NETエリアプラグインを再利用するのに役立つだろう。しかし、web.configにはいくつかの変更が必要な場合がありますが、設定値をデータベースに保存し、必要なのはweb.configの「Entity Framework接続文字列」になります。
私の課題(質問)
- ことは可能ですか?確かに私には見えますが、反映/許可の問題はありますか?
- 1つのDLL内にcshtml/aspxビューを含めるにはどうすればよいですか?おそらくコンパイルされたバージョンですか?私は、コードプレックスにテキストエンジンベースのビューエンジンのカップルを見たことがありますが、実際にそれらを使用する方法については少し混乱しています。
- 物理ディレクトリファイルが存在するかどうかを最初に確認し、dll自体のリソースファイルとしてcshtml/aspxを調べるにはどうすればよいですか?
aspxファイルはどうですか?たいていはcshtmlのみを使用していますが、PDFを印刷するにはcshtmlは未知のhtmlタグでは動作しません。したがって、時にはaspxを使用します。 –
私はASPXについて知りません。私はそれを使用し終えて以来、長い時間がかかりました。おそらく、仮想パスプロバイダーを採用することができます。 –
Nugetから直接インストールできるEmbeddedResourceVirtualPathProviderを使用することができます。アセットファイルで動作します。 https://github.com/mcintyre321/EmbeddedResourceVirtualPathProvider#readme – mcintyre321