C# asp.Net<;控制>;在当前上下文中不存在

C# asp.Net<;控制>;在当前上下文中不存在,c#,asp.net,C#,Asp.net,我面临一个小问题。我使用了dropdownList控件,ID为 ASP.Net项目中的drpDownCountries。问题是“dropdownlist控件 放置在第页的c#代码隐藏文件中,当键入控件名“drpDownCountries”时,该控件ID将列在对象成员列表中。 但是,在编译这个项目时,我遇到了以下错误 错误:-当前上下文中不存在名称“drpDownCountries” 我也在不同的机器上检查过这个问题。但是发生了相同的错误。我不明白这背后的原因是什么。您的aspx/aspx文件中可

我面临一个小问题。我使用了dropdownList控件,ID为 ASP.Net项目中的drpDownCountries。问题是“dropdownlist控件 放置在第页的c#代码隐藏文件中,当键入控件名“drpDownCountries”时,该控件ID将列在对象成员列表中。 但是,在编译这个项目时,我遇到了以下错误

错误:-当前上下文中不存在名称“drpDownCountries”


我也在不同的机器上检查过这个问题。但是发生了相同的错误。我不明白这背后的原因是什么。

您的aspx/aspx文件中可能存在错误,导致设计器文件无法正确更新。您可以通过添加新的内容(例如“”)来确认这一点并查看您是否可以访问该文件。如果不能访问,则可能需要修复的标记中有某些内容已损坏。

右键单击ASPX(或ascx)文件,然后选择“转换为web应用程序”(或类似内容)。这将强制刷新设计器文件。

当项目文件夹中有.aspx页的副本时,我看到出现此错误

示例:

Test.aspx中出现错误

项目文件夹中有一个Test-copy.aspx文件

删除、使用其他扩展名重命名,或将Test-copy.aspx移动到其他文件夹


错误已解决。

您应该输入一些代码以获得帮助

无论如何,问题可能是drpDownCountries包含在面板控件中

Panel控件是一个容器控件,因为它可以容纳大量数据 控件。
为了访问该面板控件内的控件, 您首先需要“帮助”ASP.Net找到它

执行此操作的典型方法是使用FindControl方法

代码示例:

DropDownList myDrop = (DropDownList)this.Panel1.FindControl("drpDownCountries");
 if(myDrop != null)
  {
     ..somecode..
  }

我遇到了同样的问题,尝试了这里列出的所有答案,但都没有结果


最终对我有效的方法是在“设计”视图中更改ascx文件,然后保存它。这最终迫使Visual Studio重新生成designer.cs文件并包含我的新控件。

唯一对我有效的方法是在aspx文件中添加一个临时控制器并保存它。 这再次产生了设计师,我的控制器现在被认可了!我很自豪。
然后,你可以删除临时控制器并保存,它不会破坏任何东西,你这个胆小鬼!

重新创建项目。只需创建一个新项目并逐个添加元素,希望它不会再次发生。如果发生,那么这就是Microsoft体验的一部分:重新创建另一个项目等等,直到你决定辞职并加入open源

校正


我将使用ASP.NET MVC重做过去3天以来一直在进行的项目。我肯定应该使用开源技术,但遗憾的是,我没有决定不使用.NET。因此,首先检查您的ascx文档是否定义为这样

ExampleClass.ascx

    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="ExampleClass.ascx.cs" Inherits="ExampleClass" %>

在aspx中,当您错过
runat=“server”

请勿让Intellisense愚弄您时,通常会发生此类错误。有时(通常是在修复了重复类名的问题之后),您只需重新生成项目,报告的错误就会消失。可能需要在生成后重新打开文件。

您能提供错误发生的代码吗?drpDownCountries.Attributes.Add(“onBlur”、“ErrorHighlight(“+drpDownCountries.ClientID+”、“+lblCountry.ClientID+”););这是我遇到错误的代码。检查:回答:“检查文件名后面的代码并继承@Page指令上的属性,确保它们都匹配。“您究竟在哪里插入此代码?页面加载?第一页?在Page_init控件尚不存在。我需要停止使用Microsoft的开发工具。。。这不是我面临的唯一“完全愚蠢”的问题。我在浪费生命。我想建立一些东西,我得到的都是这些愚蠢的问题,它们太多了!有一次是这样,下一次是因为另一个愚蠢的原因而无法连接,还有一次是因为那个原因,如此等等,导致无休止的愚蠢。我相信开源开发者不会经历这种愚蠢的事情。我试图成为一名开发人员,但我所做的只是内务管理。我想这就是微软开发者和真正的开源开发者之间的区别。谢谢,但你知道我在不同的机器上检查过相同的东西。但我也有同样的经历。如果你的aspx/ascx中有什么错误,肯定也会在其他机器上被破坏?这适用于我,我有两个div标记为runat=“server”,名称相同,但即使其中一个在ascx文件中被注释掉,它正在悄无声息地导致错误并停止自动更新ascx.designer.cs文件。我重命名了有问题的div,然后右键单击控件并选择“转换为Web应用程序”,这对我有帮助,但我首先必须删除设计器文件。谢谢这样做了,但现在我在代码隐藏上失去了智能感知。来回单击设计视图最终让运行时看到控件。完美,解决了我的问题;)我在VS 2012上。我用谷歌硬盘在电脑之间同步文件。我想它无意中放了另一个名为FileName[conflict].aspx的文件。我备份了那个文件并删除了它,现在一切看起来都很好。这么简单的事情,我本应该抓住,但没有抓住。
public partial class ExampleClass : System.Web.UI.UserControl
{
     protected void Page_Load(object sender, System.EventArgs e)
    {

    }
}