当前上下文中不存在asp.Net <control> </control>

时间:2011-03-05 14:37:05

标签: c# asp.net

我正面临一个小问题。我有一个dropdownList控件和ID ASP.Net项目中的"drpDownCountries。问题是“下拉列表控件 放在页面上,在c#的代码隐藏文件中,在键入控件名"drpDownCountries"时,此控件ID列在对象成员列表中。      但是,在编译项目时,我遇到了错误。

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

我也在不同的机器上检查了这个东西。但是同样的错误正在发生。我不明白背后的原因是什么。

11 个答案:

答案 0 :(得分:20)

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

答案 1 :(得分:12)

我遇到了同样的问题并尝试了此处列出的所有答案,但无济于事。

最终对我有用的是在设计视图中更改ascx文件然后保存它。此最终强制Visual Studio重新生成designer.cs文件并包含我的新控件。

答案 2 :(得分:9)

我看到项目文件夹中有.aspx页面的副本时会发生此错误。

示例:

Test.aspx中发生错误。

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

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

错误已解决。

答案 3 :(得分:1)

您的aspx / aspx文件中可能存在错误导致设计器文件无法正确更新。您可以通过添加新内容(例如“”)来确认这一点,并查看您是否可以访问它。如果没有,那么您需要修复的标记中可能会出现问题。

答案 4 :(得分:1)

首先检查你的ascx文档是这样定义的

ExampleClass.ascx

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

ExampleClass.ascx.cs

public partial class ExampleClass : System.Web.UI.UserControl
{
     protected void Page_Load(object sender, System.EventArgs e)
    {

    }
}

答案 5 :(得分:0)

你应该提供一些代码来获得帮助..

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

  

Panel控件是一个Container控件,因为它可以容纳很多   控制。
  为了访问该Panel控件中的控件,   你首先需要“帮助”ASP.Net找到它。

这样做的典型方法是使用FindControl方法look here

代码示例:

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

答案 6 :(得分:0)

对我来说唯一有用的是在aspx文件中添加一个temp控制器并保存它。 这再次产生了设计师,我的控制器现在已被识别!我感到光荣。 然后你可以删除临时控制器并保存,它不会毁了任何东西,你害怕的猫!

答案 7 :(得分:0)

重新创建项目。只需创建一个新项目并逐个添加元素,并希望它不会再次发生。如果确实如此,那么这就是Microsoft体验的一部分:重新创建另一个项目,依此类推,直到您决定退出工作并加入开源。

<强> CORRECTION

我将使用ASP .NET MVC重做我过去3天以来一直在研究的项目。我当然应该使用开源技术,但是太糟糕了,不是我决定不使用.NET。

答案 8 :(得分:0)

在aspx中,当您错过runat="server"

时,通常会发生此类错误

答案 9 :(得分:0)

不要让Intellisense欺骗你。有时(通常在修复重复的类名称问题之后),您只需要重建项目并且报告的错误就会消失。可能需要在构建之后重新打开文件。

答案 10 :(得分:0)

如果在将页面复制/移动到新位置或项目后发生这种情况,您只需检查 PageName.ascx.designer.cs 是否包含在项目中。

visual studio(或者 reshrper)存在一个错误:它包括 PageName.ascxPageName.ascx.cs,但不包括 PageName.ascx .designer.cs,必须手动包含。