"controlname"名称在当前上下文中不存在

zoh*_*air 73 c# asp.net visual-studio-2005 code-behind

我有一个我正在使用的Web应用程序(带有C#的ASP.NET2.0,使用VS2005).一切都很好,突然间我得到了错误:

Error 1 The name 'Label1' does not exist in the current context

每次我在页面的代码隐藏中使用控件时,还有43个其他类型的.

这只发生在1页.就好像代码隐藏不能识别控件一样.另一件有趣的事情是intellisense没有拿起任何控件.

我试图清理解决方案文件,删除obj文件,从项目中排除文件然后重新添加它们,关闭VS并重新启动它,甚至重新启动我的计算机,但这些都没有用.

Rob*_*erd 114

我知道这是一个老问题,但我遇到了类似的问题,并希望发布我的解决方案以防其他人受益.我在学习使用时遇到了问题:

  • ASP.NET 3.5
  • C#
  • VS2008

我试图创建一个支持AJAX的页面(如果您不熟悉这个页面,请查看有关使用ScriptManager对象的教程).我试图通过C#代码访问页面中的HTML元素,我收到一条错误,指出HTML ID值的标识符"在当前上下文中不存在".

要解决它,我必须做以下事情:

1.在服务器上运行

要将HTML元素作为C#代码中的变量进行访问,必须在aspx文件的HTML元素标记中放置以下值:

runat="server"
Run Code Online (Sandbox Code Playgroud)

Visual Studio IDE中工具箱中的某些对象在添加到页面时不会自动包含此值.

2.重新生成自动生成的C#文件:

  • 在Solution Explorer中,在aspx文件下应该有两个文件:*.aspx.cs和*.aspx.designer.cs.设计器文件是自动生成的.
  • 删除现有的*.aspx.designer.cs文件.确保只删除设计器文件.不要删除另一个,因为它包含页面的C#代码.
  • 右键单击父aspx文件.在弹出菜单中,选择" 转换为Web应用程序".

现在该元素应该可以在C#代码文件中访问.

  • 在Visual Studio 2013中,"转换为Web应用程序"选项已转移到"项目"菜单:http://stackoverflow.com/questions/19561982/visual-studio-2013-missing-convert-to-web-application (19认同)
  • 当我今天遇到它时,选项号#2是解决这个问题的完美答案! (9认同)
  • 这使用项目菜单.注意:.aspx文件的<%@ Page标签应该使用'Codebehind'而不是'Codefile' (3认同)
  • fyi右键单击"转换为Web应用程序"选项也可用于文件夹和项目. (2认同)

CMS*_*CMS 43

检查文件名后面的代码和@Page指令的Inherits属性,确保它们都匹配.


mos*_*heb 33

排除引用相同代码隐藏文件的任何其他页面,例如您复制和粘贴的旧页面.


use*_*232 13

我有同样的问题.事实证明,我的项目中有"MyPage.aspx"和"MyPage.aspx的副本".