1

ここで説明されているように、埋め込みビューを使用して ASP.NET MVC 3 (カミソリ) のプラグイン メカニズムを試しています。ビュー エンジンを RazorViewEngine から継承するように変更しましたが、それ以外は実際には何も変更しませんでした。今、ビューをレンダリングするプラグイン アセンブリでコントローラー アクションを呼び出していますが、これは問題なく動作します。しかし、ビューは _viewstart.cshtml を見つけることができないため、レイアウトがありません。理想的には、ホスト アプリケーションにビュースタートとレイアウトを定義させたいと思います。おそらく、プラグイン コントローラー アクションを直接呼び出すのではなく、プラグインからパーシャルのみをレンダリングし、ホスト アプリケーションにメインのコントローラー/ビューを処理させるべきです。

これらは、私自身の VirtualPathProvider で試したビュースタートの場所です:

"~/Plugins/MyMvcApplication.dll/_ViewStart.cshtml"
"~/Plugins/MyMvcApplication.dll/_ViewStart.vbhtml"
"~/Plugins/_ViewStart.cshtml"
"~/Plugins/_ViewStart.vbhtml"
"~/_ViewStart.cshtml"
"~/_ViewStart.vbhtml"

また、ビューの埋め込みは少し面倒に思えるので忘れることも考えています。そのため、ビューをホスト アプリケーションにコピーすることを選択することも考えられます。これにより、将来のユーザーがデバッグしやすくなる可能性があります。ユーザーがこれらのビューを変更し、プラグインの更新が難しくなるリスクがあります。プラグインのメカニズムに疑問を抱く理由の 1 つは、パフォーマンスに影響する可能性があるためです。ただし、まだ測定は行っていません。

4

0 に答える 0