C# 名称';控制名称';在当前上下文中不存在
我有一个正在开发的web应用程序(ASP.NET2.0和C#,使用VS2005)。一切都很顺利,我突然发现了一个错误:C# 名称';控制名称';在当前上下文中不存在,c#,asp.net,visual-studio-2005,code-behind,C#,Asp.net,Visual Studio 2005,Code Behind,我有一个正在开发的web应用程序(ASP.NET2.0和C#,使用VS2005)。一切都很顺利,我突然发现了一个错误: 错误1当前上下文中不存在名称“Label1” 每次我在页面的代码隐藏中使用一个控件时,都会有43个类似的控件 这只发生在一页纸上。这就好像代码隐藏无法识别控件一样。另一件有趣的事情是intellisense也没有拾取任何控件 我已尝试清理解决方案文件,删除obj文件,从项目中排除文件,然后重新添加它们,关闭VS并重新启动它,甚至重新启动我的计算机,但这些都不起作用。检查您的代码
错误1当前上下文中不存在名称“Label1”
每次我在页面的代码隐藏中使用一个控件时,都会有43个类似的控件
这只发生在一页纸上。这就好像代码隐藏无法识别控件一样。另一件有趣的事情是intellisense也没有拾取任何控件
我已尝试清理解决方案文件,删除obj文件,从项目中排除文件,然后重新添加它们,关闭VS并重新启动它,甚至重新启动我的计算机,但这些都不起作用。检查您的代码隐藏文件名并继承@Page指令上的属性,确保它们都匹配。排除引用相同代码隐藏文件的任何其他页面,例如您复制和粘贴的旧页面。我知道这是一个老问题,但我遇到了类似的问题,希望发布我的解决方案,以防它对其他人有利。我在学习使用时遇到了以下问题:
- ASP.NET3.5
- C#
- VS2008
runat="server"
Visual Studio IDE中工具箱中的某些对象在添加到页面时不会自动包含此值
2。重新生成自动生成的C#文件:
- 在解决方案资源管理器中,在aspx文件下应该有两个文件:*.aspx.cs和*.aspx.designer.cs。设计器文件是自动生成的
- 删除现有的*.aspx.designer.cs文件。确保只删除设计器文件。不要删除另一个,因为它包含页面的C#代码
- 右键单击父aspx文件。在弹出菜单中,选择转换为Web应用程序
现在,该元素应该可以在C代码文件中访问。此外,请确保没有文件意外地试图继承或定义与其他文件相同的(部分)类。请注意,这些文件可能看起来与实际出现错误的文件无关 我也有同样的问题。事实证明,我的项目中既有“MyPage.aspx”也有“MyPage.aspx的副本”。我遇到了相同的错误,只是它是一个WPF错误。我正在重新安排项目,并在中定义了如下控制:
<local:CustomControl Name="Custom" />
我的诀窍是将Xaml中的控件更改为:
<local:CustomControl x:Name="Custom" />
希望这有助于其他人 上述提供的解决方案选项2适用于windows窗体应用程序,而不是web aspx应用程序。我在web应用程序中遇到了类似的错误,我通过删除一个文件解决了这个问题,其中我有一个同名的用户控件,这个aspx文件实际上是一个备份文件,在这个过程中没有被引用,但它仍然导致了错误,因为在备份文件上注册的用户控件的名称与在流程流中引用的aspx文件上的名称完全相同。所以我删除了备份文件并构建了解决方案,构建成功
希望这对类似情况的人有所帮助
Vijaya Laxmi。我也遇到了同样的问题,因为我试图从visual studio 2010项目中重新生成aspx文件,因此控件具有clientdMode=“Static”属性。当删除此项时,已解决此问题 在从数据列表转换中继器后,我在调整中继器时遇到了类似的问题 问题是,在删除一个不需要的属性时,我意外地合并了两个属性
<asp:Repeater runat="server" ID="ClientsRP"DataSourceID="ClientsDS">
.
.
.
</asp:Repeater>
.
.
.
这阻止了在设计文件中生成中继器。我收到了相同的错误消息。我的代码没有错误,工作正常,然后我决定返回并重命名我的一个按钮,突然它给了我一个编译错误,伴随着蓝色扭曲的下划线,说控件在当前上下文中不存在
结果证明Visual Studio是愚蠢的,因为问题与我为我的aspx.cs类制作的备份文件有关。我删除了这些,错误就消失了。在对数据上下文进行更改后,我收到了相同的错误。但是我遇到了一些我不熟悉的事情。我习惯于手动发布文件。通常,当我这样做时,发布文件夹中不会出现应用程序代码文件夹。Bu我开始使用VS 12 publishing,它在web服务器的帮助下直接发布。然后我得到了一个关于预编译应用程序的错误。然后我删除了应用程序代码文件夹,它工作了。但是它给了我你得到的数据上下文错误。所以我只是删除了所有的文件,并在没有文件限制的情况下再次运行发布(每个文件夹和文件都将被发布),然后它就像一个符咒一样工作 我遇到了同样的问题。显然,您不应该在BLL中调用与.aspx/.aspx.cs文件同名的类。我原以为它们不在同一个范围内,等等,但它太多地干扰了VisualStudio的内部工作。我有点惊讶,如果它将产生那种类型的错误,没有什么东西可以阻止你这样做。无论如何,只需删除.aspx/.aspx.cs文件并重建项目。然后用另一个名字把他们带回来。如果不想重新键入代码,可以将代码复制/粘贴到另一个编辑器中。in
<asp:Repeater runat="server" ID="ClientsRP"DataSourceID="ClientsDS">
.
.
.
</asp:Repeater>
AutoGenerateColumns="False"DataKeyNames="ProductID"
AutoGenerateColumns="False" DataKeyNames="ProductID"