c# - 当前上下文中不存在名称 'controlname'

标签 c# asp.net visual-studio-2005 code-behind

我有一个正在开发的 Web 应用程序(ASP.NET2.0 和 C#,使用 VS2005)。一切正常,突然间我收到错误:

错误 1 ​​The name 'Label1' does not exist in the current context

每次我在页面的代码隐藏中使用控件时,还有 43 个类似的问题。

这只发生在 1 个页面上。就好像代码隐藏没有识别控件一样。另一件有趣的事情是智能感知也没有选择任何控件..

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

最佳答案

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

  • ASP.NET 3.5
  • C#
  • VS2008

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

为了解决这个问题,我必须执行以下操作:

<强>1。在服务器上运行

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

runat="server"

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

<强>2。重新生成自动生成的 C# 文件:

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

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

关于c# - 当前上下文中不存在名称 'controlname',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/706603/

相关文章:

c# - 如何在设计器中显示扩展 WPF 工具包向导的第一个向导页面以外的内容?

c# - "Copy Local"是否可传递给项目引用?

asp.net - 在 postman 中发送实体模型

asp.net - 编译正常,但在发布可更新选项时出现问题

c++ - 我应该将哪个版本的 boost 与 c++ visual-studio-2005 一起使用?

c# - 在 ASP .NET MVC 中选择图表库

c# - 无法在 LINQ to Entities 中将字符串转换为 GUID

asp.net - 输入按钮不提交表单(仅限 IE)ASP.NET

c# - 我需要关闭数据读取器吗

c++ - 如何解决 Visual Studio 中的链接错误 2005?