“..必须从WebViewPage或WebViewPage派生 “在MonoDevelop和MVC3(OS X)上

问题描述 投票:14回答:4

我正在尝试使用MonoDevelop进行MVC 3 Razor项目。

我使用Mono 2.10.9 / MonoDevelop 3.0.4.7创建了一个新的ASP.net MVC 2项目,并将以下DLL从现有的基于Windows的MVC3项目复制到Mono项目的“bin”目录:

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版本中编译和运行。

非常感谢,如果有人能指出我可以在这些树林中找到一些木头:)

asp.net-mvc-3 macos mono monodevelop
4个回答
38
投票

如果有人遇到这种情况,那只是因为位于“Views”文件夹下的web.config文件尚未更新,因此引用了MVC3 Razor组件。咄。

最简单的方法是从现有的MVC3项目中复制一个。


20
投票

解决方案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



1
投票

出于某种原因,需要在顶部添加@model。我可以通过在页面顶部添加以下语句来修复,尽管我没有将任何内容传递给该页面。

@model String
© www.soinside.com 2019 - 2024. All rights reserved.