Asp.net mvc 3 视图必须派生自WebViewPage或WebViewPage<;TModel>;

Asp.net mvc 3 视图必须派生自WebViewPage或WebViewPage<;TModel>;,asp.net-mvc-3,razor,embedded-resource,plugin-architecture,Asp.net Mvc 3,Razor,Embedded Resource,Plugin Architecture,我正在关注并尝试将其应用于Razor,而不是WebForm视图 其他一切(控制器、插件程序集加载等)似乎都正常。但是,我无法使嵌入的Razor视图正常工作。当我尝试浏览到“HelloWorld/Index”时,出现以下错误: “~/Plugins/MyProjectPlugin.dll/MyProjectPlugin.Views.HelloWorld.Index.cshtml”处的视图必须派生自WebViewPage或WebViewPage。 异常由System.Web.Mvc.RazorVi

我正在关注并尝试将其应用于Razor,而不是WebForm视图

其他一切(控制器、插件程序集加载等)似乎都正常。但是,我无法使嵌入的Razor视图正常工作。当我尝试浏览到“HelloWorld/Index”时,出现以下错误:

“~/Plugins/MyProjectPlugin.dll/MyProjectPlugin.Views.HelloWorld.Index.cshtml”处的视图必须派生自WebViewPage或WebViewPage。 异常由
System.Web.Mvc.RazorView.RenderView(ViewContext、TextWriter、Object实例)+262引发

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

有人能告诉我可能做错了什么吗

您可以查看更适合剃须刀的

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

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

注意:我遇到了一个非常类似的问题,最终不得不确定我是唯一一个在解决方案中链接了MVC4.0.0.0的开发人员

其他所有人都正确引用了3.0.0.0,并且构建/运行时没有错误


TL;DR确保您的引用与开发组的其他成员相同。

我遇到了相同的问题,因为我没有提交包含razor库的packages文件夹。然后我添加了这个包,它工作了,但重建后它就坏了。然后我关闭了nuget automatic run-on build,现在它运行良好。
在我的例子中,nuget把事情搞砸了。

今天刚在将旧的MVC3项目更新到版本4时遇到这个错误,对我来说,解决方案是删除
部分中的属性
appliesTo=“v2.0.50727”

安装软件包:安装软件包Microsoft.AspNet.WebPages

我想分享我的痛苦。。该网站在本地运行良好,但当我发布到客户的IIS时,它抛出了这个错误。所有web.config文件(根和/视图)都与站点的工作副本完美匹配

其中一个视图(logon.cshtml)的行尾不一致,我没有单击“是”在我的Windows计算机上修复它


单击“不一致的行尾”对话框的“是”并发布logon.cshtml视图,我解决了这个问题。

我在尝试向Web API项目添加MVC脚手架(特别是
视图
文件夹)时遇到了这个错误。说:

不再存在应用并允许您为razor视图指定基本类型的
~/Views/web.config
文件

在对该答案的评论中:


我能够将web.config从~/Views复制到我的备用位置来解决我的问题

以及:


如果您在@joelnet的评论中遇到问题,请尝试清理和重建项目

这些提示帮助我找到了解决办法


首先,我将
Web.config
从同一解决方案中另一个项目的
Views
文件夹复制到新的
Views
文件夹中。我重命名了主
名称空间
标记以匹配新项目,在收到错误后删除了另一个我不需要的
。然后,我触发了一个构建(只是一个普通的构建,我不需要清理和重建),并且我能够加载我的新视图而没有错误。

感谢您提供这两条信息。我将查看您提到的博客。我能够将web.config从~/Views复制到我的备用位置,以解决我的问题。谢谢。@Darin Dimitrov我也有类似的问题。当我尝试添加
@inherits
时,我收到一个错误,说明我不能同时使用
@inherits
@model
。你能帮忙吗?编辑我使用的是MVC4。如果您在@joelnet的评论中遇到问题,请尝试清理和重建项目。@DarinDimitrov:我创建了一个示例应用程序,并在共享文件夹中创建了一个用于发送电子邮件的视图sampleView.html。我得到了上面的崩溃并使用了上面的代码,现在它说错误在使用“model”关键字时不允许使用“inherits”关键字。我不相信
Microsoft.AspNet.WebPages
4年前ASP.NET MV3的软件包是可用的。@Nasir,我真诚地问,在StackOverflow上,即使问题今天仍然存在,答案还是与发布时可用的技术有关吗?我个人的意见是,如果你回答的是一个旧问题,至少要承认,提供的答案在最初提问时可能并不相关。否则,它要么是一个不知情的答案,要么是用户没有注意细节(日期是这些细节之一)。