我试图用MonoDevelop进行MVC 3 Razor项目。
我使用Mono 2.10.9 / MonoDevelop 3.0.4.7创建了一个新的ASP.net MVC 2项目,并将以下DLL从现有的基于Windows的MVC3项目复制到&#34箱位#34; Mono项目目录:
System.Web.Helpers.dll
System.Web.Razor.dll
System.Web.WebPages.Deployment.dll
System.Web.WebPages.dll
System.Web.WebPages.Razor.dll
已将项目设置为使用Mono / .NET 4.默认的索引文件已被删除并替换为Index.cshtml文件。当我执行项目时,我得到以下错误:
The view at '~/Views/Home/Index.cshtml' must derive from WebViewPage, or WebViewPage<TModel>.
奇怪的是,我之前已经完成了这个过程,并且MVC 3页面正常工作。仅仅升级Mono(它声称支持Razor ......?)它现在已经不再为我工作了。我之前使用MVC3创建的项目似乎都在新的Mono版本中编译和运行。
非常感谢,如果有人能指出我在这些树林中能找到一些木材的地方:)
答案 0 :(得分:38)
如果有人遇到这种情况,那只是因为位于“Views”文件夹下的web.config文件尚未更新,因此引用了MVC3 Razor组件。咄。
最简单的方法是从现有的MVC3项目中复制一个。
答案 1 :(得分:19)
解决方案1。
在cshtml文件的顶部添加以下行。
@inherits System.Web.Mvc.WebViewPage
您现在一定想知道ASP.NET MVC模板中的视图 在cshtml文件的顶部没有这一行?所以让我们看看 第二个解决方案。
解决方案2.
添加web.config文件并为所有视图指定相同的设置。 这是此配置文件中要获取的最低要求代码 摆脱这个错误信息。
<?xml version="1.0"?> <configuration> <configSections> <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35"> <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> </sectionGroup> </configSections> <system.web.webPages.razor> <pages pageBaseType="System.Web.Mvc.WebViewPage" ></pages> </system.web.webPages.razor> </configuration>
所需的实际设置是pageBaseType =“System.Web.Mvc.WebViewPage”。 其他文字只是必需的 定义标签。
参考链接:clickHere
答案 2 :(得分:1)
答案 3 :(得分:1)
由于某种原因,需要在顶部添加@model。我可以通过在页面顶部添加以下语句来解决问题,尽管我没有向该页面传递任何内容。
@model String