Asp.net MVC转换项目,除非';全球';是添加的还是系统。。。被移除

Asp.net MVC转换项目,除非';全球';是添加的还是系统。。。被移除,asp.net,vb.net,visual-studio-2010,asp.net-mvc-4,Asp.net,Vb.net,Visual Studio 2010,Asp.net Mvc 4,我的问题与此类似: 我正在将一个网站项目转换为MVC4项目。为此,我创建了一个新的MVC项目,并从以前的网站导入了我的所有内容。这两个项目都在VB中,我使用的是Visual Studio 2010 SP1,同时应用了MVC 4更新和TFS 2012更新 我现在在构建MVC项目时出现了错误。“Type‘System.Web.UI.Webcontrol’之类的内容没有定义。”当我将鼠标悬停在错误上方时,我得到的两个修复错误的提示是 1) 将“System.Web.UI.WebControl”更改为“

我的问题与此类似:

我正在将一个网站项目转换为MVC4项目。为此,我创建了一个新的MVC项目,并从以前的网站导入了我的所有内容。这两个项目都在VB中,我使用的是Visual Studio 2010 SP1,同时应用了MVC 4更新和TFS 2012更新

我现在在构建MVC项目时出现了错误。“Type‘System.Web.UI.Webcontrol’之类的内容没有定义。”当我将鼠标悬停在错误上方时,我得到的两个修复错误的提示是

1) 将“System.Web.UI.WebControl”更改为“Global.System.Web.UI.WebControl” 2) 将“System.Web.UI.WebControl”更改为“WebControl”

这两种方法似乎都可以解决这个问题,但是有人知道为什么我不能使用“System.Web.UI.WebControl”来引用这个类吗?我不想改变我所有的代码。。。那里有上百行


更新:在System和System.Web.UI名称空间之外,我还可以删除“System”。因此,“System.Drawing.Color”将变为“Drawing.Color”。

在您的解决方案中的某个地方(例如,
Abc.System.def
)可能存在另一个包含
System
的命名空间-在引用的库中。转换后,项目文件可能将前缀导入到所述命名空间中的
System
(例如
Abc
),因此当您键入
System
,它将解析为
Abc.System

,我在尽可能减少编译错误之前就发布了这个问题

似乎在我从以前的应用程序代码类中删除了所有的
系统。
引用之后,真正的错误开始出现了。有各种各样关于aspx控件不存在的消息

最终,我似乎需要右键单击网站项目中的.aspx页面并选择“转换为Web应用程序”。这生成了一个.aspx.designer.vb文件,其中包含另一个分部类中的asp.net控件声明

对所有页面执行此操作后,我现在可以在整个应用程序中使用
系统。

对于其他询问的人,此
系统。
错误仅影响非页面代码。aspx、.aspx.vb、.ascx、.ascx.vb、.ashx等文件未受影响

无论如何,这是有道理的,因为我之前在拉入页面之前拉入了所有的App_代码库,并编译了网站。导入页面及其代码后,错误的顺序很奇怪。但我坚持下去,找到了根本原因


谢谢你愿意帮忙。如果您还有其他问题,我很乐意回答。

您可能有自己的名为
System
的名称空间/类,它比框架更接近您正在编写的代码。不,我没有。我已经使用此代码多年了,从我自己的代码库中没有使用此名称的类。顺便问一下,这来自于.net 4.0中的一个vb asp.net网站项目,该项目按原样工作。您从哪个框架转换?您是否删除了所有引用并重新添加了它们,或者验证了它们来自何处?创建一个新项目,用一个web控件只导入一段内容,看看是否会出现同样的错误,这也会有所帮助。您还可以在视图中检查Web.config,看看它是否正在导入名称空间。有趣的是,后面的.aspx代码没有相同的问题,只有那些以前驻留在app_代码中的东西