4

我正在尝试将现有的 ASP.net MVC 2 Web 应用程序升级到 MVC 3,这样我就可以使用 Razor Viewengine 的优点和其他所说的改进。

使用转换器将我的应用程序从 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 的屏幕截图,请参见下文

替代文字

替代文字

替代文字

4

5 回答 5

7

这是 MVC 3 Preview 1 中的一个错误,将在下一个版本中解决。在此期间,您可以重新排列页面,以便 <%@ Control %> 指令是文件中的最后一个指令,这应该是您的问题。

于 2010-08-19T23:15:00.303 回答
5

我只是按照迁移的建议替换了我的“视图”文件夹中的 web.config(使用新创建的 mvc3 项目中的一个),它对我有用。我不准备将所有声明移到底部,因为我的项目太大了。

希望它有所帮助,尽管这对您来说可能为时已晚。也许它可以帮助其他人......

于 2010-11-30T15:16:08.500 回答
4

如果有机会,请尝试将您的更改bindingRedirect

<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
于 2010-08-19T05:24:23.370 回答
0

我遇到了完全相同的问题,将头发拉了一点后,找到并遵循了 Wiaan 的解决方案。运行良好,网站已备份。

有趣的是,没有在我们的开发箱上进行此更改并没有破坏我们的网站 - 只有当我们将它移动到登台服务器时它才会浮出水面。

于 2011-01-19T22:01:28.003 回答
0

如果您的项目基于 MVC4 或已经使用 Framwork 4,请创建 mvc4 空项目。然后替换views文件夹中的web.config。它立即起作用。谢谢,维安。因为我有一种使用 aspx 而不是 razor 的旧应用程序。将 Framework 3 升级到 4 后,出现此错误。

于 2013-01-10T18:30:09.777 回答