当前上下文中不存在该名称。

3

I have the following HTML in an .aspx:

 <div ID="divText" runat="server" style="position:absolute;top:60px; left:800px; width:600px; height:100px; z-index:2;font-size:200%">
 </div>

然后在代码后台,IntelliSense找到了'divText',但是我收到了标题中列出的编译错误。

 string productEdition = ConfigurationManager.AppSettings["Club"];
 divText.InnerHtml = productEdition;

编译错误:

错误 3:当前上下文中不存在名称为'divText'的内容。

问题是在另一个文件中,完全相同的HTML和代码可以运行。我们尝试了所有方法。有何建议吗?


你是在哪里调用这个函数的?在页面加载时吗?同时确保你的aspx和cs文件名称相同。 - Peter Rasmussen
你是否复制并粘贴了整个 .aspx 页面? - Gratzy
3
你是在静态方法中调用这个吗? - gilly3
我遇到了相同的错误,但是我无法解决它。 - Ali Shan
7个回答

1

当我将旧的VS2005 aspx/aspx.cs文件导入到新的VS2013项目中时,遇到了类似的问题。我解决了这个问题,方法是创建一个新的Web应用程序,为每个aspx页面创建一个新的webform,并复制.aspx和.cs的代码。复制后,我必须将.cs文件的第一行更改为使用CodeBehind而不是CodeFile

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="_Login" %>

TO

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="_Login" %>

我希望这能帮助其他人。

我有同样的问题,但这个解决方案对我不起作用。 - Ali Shan

1
这个错误通常发生在您复制粘贴aspx文件时。请验证您的aspx是否指向正确的cs文件。还要检查两个文件的名称。
另一个选项是您的设计师文件出现了问题。如果您想让Visual Studio重新生成您的designer.cs文件,您可以进入设计模式,进行小的更改并保存文件。
如果上述方法都不起作用,请告诉我(90%的情况下是由此引起的)。

我无法解决这个错误,你提供的所有解决方案都没有起作用。 - Ali Shan

1
如果其他建议不起作用,可以删除设计器文件,右键标记文件,然后单击“转换为 Web 应用程序”。

0

很可能控件变量没有被添加到aspx.designer.cs文件中。您可以重新添加控件,Visual Studio可能会为您添加它,或者您可以手动将其添加到设计器中。

protected global::System.Web.UI.HtmlControls.HtmlGenericControl divText;

没有设计文件。这是一个网站项目。 - user2471435

0

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

您还可以在解决方案资源管理器中右键单击项目并选择转换为Web应用程序。在这种情况下,您的所有项目文件都将更改。

如果右键单击后看不到“转换为Web应用程序”,则可以单击“项目”菜单,然后在底部找到“转换为Web应用程序”。


0

我认为问题在中间混合了3个问题:

  1. 检查代码MyFile.aspx.cs文件中的命名空间是否与项目相同。
  2. 在MyFile.design.aspx.cs中,命名空间应与前一个文件匹配
  3. 如果您的aspx页面的设计文件在部分类中声明了导致该错误的控件。

在我的情况下,在复制/添加现有aspx文件后出现了问题。 检查所有命名空间是否正确后,问题得到解决。


-2

看起来你的问题可能是大写的ID没有设置元素的ID。另外,根据你发布的代码,我不确定这个ID是如何变成一个对象的。


这是一个ASP.NET服务器控件。它的ID应该是大写的。 - Jace Rhea
实际上,在aspx页面中,id属性的大小写并不重要。您可以使用IDIdiD甚至是id,效果完全相同。 - Darin Dimitrov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接