我正在关注Justin Slattery的插件架构教程,并尝试将其用于Razor,而不是WebForm Views.
其他一切(控制器,插件组装加载等)似乎没问题.但是,我无法使嵌入式Razor视图正常工作.当我尝试浏览"HelloWorld/Index"时,出现以下错误:
The view at '~/Plugins/MyProjectPlugin.dll/MyProjectPlugin.Views.HelloWorld.Index.cshtml' must derive from WebViewPage or WebViewPage.
抛出异常 System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +262
如果需要,我可以包括完整的堆栈跟踪.
任何人都可以建议我可能做错了什么?
您可以查看以下更适合Razor的博客文章.
但要回答您的问题,因为您现在正在从非标准位置提供视图,因此不再~/Views/web.config
适用该文件,并允许您为剃刀视图指定基本类型.因此,您可能需要在每个剃刀视图的顶部添加以下内容:
@inherits System.Web.Mvc.WebViewPage @model ...
注意:我有一个非常相似的问题,并且最终要追查到我是唯一一个在其解决方案中链接了MVC 4.0.0.0的开发人员.
其他人都已正确引用3.0.0.0并且正在构建/运行而没有错误.
TL; DR确保您的引用与开发组的其余部分相同.