我正在尝试将现有的ASP.net MVC 2 Web应用程序升级到MVC 3,因此我可以使用Razor Viewengine和其他said改进的优点。
使用转换器将我的应用程序从mvc2转换为mvc3后,我的强类型视图出现问题。作为一个例子,我们有一个视图用户控件,它强烈类型为类Profile
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Profile>" %>
在编译期间,我正在
Compiler Error Message: CS1061: 'object' does not contain a definition for 'folio' and no extension method 'folio' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)
对应于我视图中的这一行
因此,视图不再接受某种类型。这种情况发生在用户控件以及视图上。
我检查了web.config和views / web.config,两者似乎都引用了System.Web.Mvc 3.0.0.0版本
任何帮助将不胜感激!
请参阅下文,了解web.configs的屏幕截图
答案 0 :(得分:7)
这是MVC 3 Preview 1中的一个错误,将在下一个版本中解决。在此期间,您可以重新排列页面,以便&lt;%@ Control%&gt;指令是文件中的最后一个,应该是你的问题。
答案 1 :(得分:5)
我只是替换了我的'Views'文件夹中的web.config(来自新创建的mvc3项目中的一个),因为迁移建议并且它对我有用。我不准备将所有声明都移到底部,因为我的项目太大了。
希望它有所帮助,虽然这对你来说可能为时已晚。也许它有助于其他人......
答案 2 :(得分:4)
关闭机会尝试将bindingRedirect
更改为
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
答案 3 :(得分:0)
我遇到了完全相同的问题,把头发拉了一下后,发现并按照Wiaan的解决方案。工作得很好,网站也恢复了。
有趣的不在我们的开发盒上进行此更改并没有破坏我们的网站 - 只有当我们将它移动到它浮出水面的登台服务器时才会这样。
答案 4 :(得分:0)
如果您的项目基于MVC4或已经使用Framwork 4,请创建mvc4空项目。然后替换views文件夹中的web.config。它立即起作用。谢谢,Wianne。因为我有一种使用aspx而不是剃刀的旧应用程序。在我将Framework 3升级到4之后,我收到了这个错误。