我正在尝试使用RazorViewEngine将MVC2站点转换为MVC3。
我使用this tool升级我的项目,使用Telerik converter tool将我的.aspx视图转换为Razor。 Telerik工具在我的布局顶部放置了@inherits
行(从ViewMasterPage开始)。
当我尝试运行使用其中一种布局的页面时,我收到错误:
... cshtml.Execute():找不到合适的方法来覆盖
我删除了@inherits
标记,它开始适用于我的主页。但是,我继续使用相同的布局获取另一个页面的此错误。现在,在移动一些东西来处理区域问题之后,我又回到了为我的所有页面(无论如何我可以访问的页面)获取此错误。
我尝试关闭Visual Studio,删除临时文件等。
答案 0 :(得分:21)
想出来 - 以下部分需要在web.config
用于剃刀 - 我在web.configs
目录的Views
中,但在root
中没有} 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>
答案 1 :(得分:4)
这里可能会有一些事情发生。确保遵循这些准则
@inherits
个指令。除非您使用自定义视图页基类,否则它们是不必要的。对于强类型视图,您应该使用@model
指令来指定模型类型。对于每周打印的视图,您不需要任何内容。return View("ViewName", "MasterName")
代码的所有操作方法,因为这可能也会导致使用冲突的临时技术。答案 2 :(得分:0)