Asp.net mvc 3 MVC3/Razor:cshtml.Execute()';:找不到可重写的合适方法

Asp.net mvc 3 MVC3/Razor:cshtml.Execute()';:找不到可重写的合适方法,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我正在尝试使用RazorViewEngine将MVC2站点转换为MVC3 我曾经升级我的项目,并将.aspx视图转换为Razor。Telerik工具在我的版面顶部(从ViewMasterPage插入)放置了一条继承线 当我尝试运行使用这些布局之一的页面时,出现错误: …cshtml.Execute():未找到可重写的合适方法 我删除了@inherits标记,它开始在我的主页上工作。但是,对于使用相同布局的另一个页面,我继续遇到此错误。现在,在移动一些东西来处理一个区域问题之后,我又回到了我的所有

我正在尝试使用RazorViewEngine将MVC2站点转换为MVC3

我曾经升级我的项目,并将.aspx视图转换为Razor。Telerik工具在我的版面顶部(从ViewMasterPage插入)放置了一条继承线

当我尝试运行使用这些布局之一的页面时,出现错误:

…cshtml.Execute():未找到可重写的合适方法

我删除了
@inherits
标记,它开始在我的主页上工作。但是,对于使用相同布局的另一个页面,我继续遇到此错误。现在,在移动一些东西来处理一个区域问题之后,我又回到了我的所有页面(我可以访问的页面)的错误


我已尝试关闭Visual Studio、删除临时文件等。

如果您仍有MVC2项目的备份,我将尝试使用Microsoft在MSDN上发布的工具进行此操作。有关更多信息,请参阅链接。当MVC3发布时,Scott Guthrie在他的博客文章中也写了一些关于它的内容,你可以阅读这篇文章


恐怕我不能给你一个直接的解决办法。但听起来像是您使用的telerik转换软件中的错误或问题。

这里可能会发生一些事情。确保您遵循这些指导原则

  • 视图中没有
    @inherits
    指令。除非您使用的是自定义视图页面基类,否则它们是不必要的。对于强类型视图,应使用
    @model
    指令指定模型类型。对于每周键入的视图,您不需要任何东西
  • 不要将razor视图与aspx母版页(或带有razor布局的aspx页面)混合使用,因为它们不容易协同工作。这包括检查所有操作方法,其中包含类似于
    返回视图(“ViewName”、“MasterName”)
    的代码,因为这也可能导致使用冲突的TemplateSign技术

找到了它-razor的
web.config
中需要有以下部分-我在
视图
目录中的
web.configs
中有它,但不在
根目录中
web.config:

 <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>


谢谢-我没有@inherits指令,我正在使用@model指令。所有母版页都转换为布局。啊,是的,这实际上就是我使用的工具。然后,我使用Telerik工具将aspx视图转换为razor。我将更新我的帖子。@sydneyos。您可以发布一个CSHTML文件现在看起来如何的代码示例吗?该配置部分在技术上是正确的,但在根web.config中不需要它。将其保存在~/Views/Web.config中,但只需确保您的pageBaseType=“System.Web.Mvc.WebViewPage”,而不是“System.Web.Mvc.ViewPage”。我刚刚用那个小改动解决了应用程序中的这个错误。@MikeWyatt我现在正在处理同样的问题,并尝试了您的建议,但我得到了以下错误:System.Web.Mvc.WebViewPage不允许在这里使用,因为它不扩展System.Web.UI.Page。知道我能做什么吗?谢谢@头晕波:我也看到了那个信息,但它只是一个警告。不过,这似乎没有给我带来任何问题。当你运行你的站点时,你是否遇到构建失败或错误?@MikeWyatt是的,它实际上抛出了一个ConfigurationException。这是在一个我从MVC2转换为3的站点上,我正在将部分视图一个一个地转换为Razor。所以很多事情都可能是错误的谢谢你的帮助@MikeWyatt是对这个答案的极好补充。非常感谢。在MVC3>5转换期间,我们的区域配置中有我们的视图,但主视图配置中没有。