使用视图将MVC 2升级到MVC 3问题

时间:2010-08-18 19:54:24

标签: asp.net-mvc-2 views asp.net-mvc-3

我正在尝试将现有的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?)

对应于我视图中的这一行 alt text

因此,视图不再接受某种类型。这种情况发生在用户控件以及视图上。

我检查了web.config和views / web.config,两者似乎都引用了System.Web.Mvc 3.0.0.0版本

任何帮助将不胜感激!

请参阅下文,了解web.configs的屏幕截图

alt text

alt text

alt text

5 个答案:

答案 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之后,我收到了这个错误。