ASP.NET MVC 3使用插件/嵌入视图时找不到_viewstart.cshtml

时间:2012-08-29 23:52:06

标签: asp.net-mvc-3 plugins razor virtualpathprovider

我正在尝试使用嵌入式视图的ASP.NET MVC 3(razor)的插件机制,如here所述,我将视图引擎更改为继承自RazorViewEngine,但是否则没有真正改变任何东西。现在我在插件程序集中调用一个控制器动作,它呈现一个视图,这个工作正常。但是视图找不到_viewstart.cshtml,因而没有布局。理想情况下,我想让主机应用程序定义viewstart和layout。可能我不应该直接调用插件控制器操作,而是仅从插件中渲染部分并让宿主应用程序处理主控制器/视图。

这些是在我自己的VirtualPathProvider中尝试的viewstart位置:

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

我也在考虑忘记嵌入视图,因为它看起来有点繁琐,所以我可能只是选择将视图复制到主机应用程序,这可以使未来用户更容易调试。风险在于用户将对这些视图进行更改,从而使插件的更新更加困难。我对插件机制有疑问的原因之一是可能的性能影响,尽管我还没有做过任何测量。

0 个答案:

没有答案