我有一个我正在使用的Web应用程序(带有C#的ASP.NET2.0,使用VS2005).一切都很好,突然间我得到了错误:
Error 1 The name 'Label1' does not exist in the current context
每次我在页面的代码隐藏中使用控件时,还有43个其他类型的.
这只发生在1页.就好像代码隐藏不能识别控件一样.另一件有趣的事情是intellisense没有拿起任何控件.
我试图清理解决方案文件,删除obj文件,从项目中排除文件然后重新添加它们,关闭VS并重新启动它,甚至重新启动我的计算机,但这些都没有用.
我知道这是一个老问题,但我遇到了类似的问题,并希望发布我的解决方案以防其他人受益.我在学习使用时遇到了问题:
ASP.NET 3.5
C#
VS2008
我试图创建一个支持AJAX的页面(如果您不熟悉这个页面,请查看有关使用ScriptManager对象的教程).我试图通过C#代码访问页面中的HTML元素,我收到一条错误,指出HTML ID值的标识符"在当前上下文中不存在".
要解决它,我必须做以下事情:
1.在服务器上运行
要将HTML元素作为C#代码中的变量进行访问,必须在aspx文件的HTML元素标记中放置以下值:
runat="server"
Visual Studio IDE中工具箱中的某些对象在添加到页面时不会自动包含此值.
2.重新生成自动生成的C#文件:
在Solution Explorer中,在aspx文件下应该有两个文件:*.aspx.cs和*.aspx.designer.cs.设计器文件是自动生成的.
删除现有的*.aspx.designer.cs文件.确保只删除设计器文件.不要删除另一个,因为它包含页面的C#代码.
右键单击父aspx文件.在弹出菜单中,选择" 转换为Web应用程序".
现在该元素应该可以在C#代码文件中访问.
检查文件名后面的代码和@Page指令的Inherits属性,确保它们都匹配.
排除引用相同代码隐藏文件的任何其他页面,例如您复制和粘贴的旧页面.
我有同样的问题.事实证明,我的项目中有"MyPage.aspx"和"MyPage.aspx的副本".