我正面临一个小问题。我有一个dropdownList控件和ID
ASP.Net项目中的"drpDownCountries
。问题是“下拉列表控件
放在页面上,在c#的代码隐藏文件中,在键入控件名"drpDownCountries"
时,此控件ID列在对象成员列表中。
但是,在编译项目时,我遇到了错误。
错误: - 当前上下文中不存在“drpDownCountries”名称 。
我也在不同的机器上检查了这个东西。但是同样的错误正在发生。我不明白背后的原因是什么。
答案 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.ascx 和 PageName.ascx.cs,但不包括 PageName.ascx .designer.cs,必须手动包含。