当前位置:  开发笔记 > 后端 > 正文

视图必须派生自WebViewPage或WebViewPage <TModel>

如何解决《视图必须派生自WebViewPage或WebViewPage<TModel>》经验,为你挑选了2个好方法。

我正在关注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

如果需要,我可以包括完整的堆栈跟踪.

任何人都可以建议我可能做错了什么?



1> Darin Dimitr..:

您可以查看以下更适合Razor的博客文章.

但要回答您的问题,因为您现在正在从非标准位置提供视图,因此不再~/Views/web.config适用该文件,并允许您为剃刀视图指定基本类型.因此,您可能需要在每个剃刀视图的顶部添加以下内容:

@inherits System.Web.Mvc.WebViewPage
@model ...


我能够将web.config从〜/ Views复制到我的备用位置来解决我的问题.谢谢.
@DarinDimitrov:我创建了一个示例应用程序,在共享文件夹中,我创建了一个用于发送电子邮件的View sampleView.html.我得到了上面的崩溃,并使用了上面的代码,现在它说错误**当使用'model'关键字时,不允许使用'inherits'关键字.**
如果您无法在@ joelnet的评论中找到解决方案,请尝试清理并重建项目.

2> 小智..:

注意:我有一个非常相似的问题,并且最终要追查到我是唯一一个在其解决方案中链接了MVC 4.0.0.0的开发人员.

其他人都已正确引用3.0.0.0并且正在构建/运行而没有错误.

TL; DR确保您的引用与开发组的其余部分相同.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有