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

时间:2013-06-28 20:25:22

标签: c# asp.net .net compiler-errors

我在.aspx中有以下HTML:

 <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”

事情是相同的EXHT html和代码在另一个文件中工作。我们已经尝试了一切。有什么想法吗?

7 个答案:

答案 0 :(得分:1)

当您复制粘贴一个aspx文件时,通常会出现此错误。请验证您的aspx是否指向正确的cs文件。另请检查两个文件的名称。

其他选项是您的设计器文件有问题。如果您希望Visual Studio重新生成designer.cs文件,您可以进入设计模式,进行小的更改并保存文件。

如果这一切都不起作用,请告诉我(90%的时间是由此造成的)。

答案 1 :(得分:1)

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

答案 2 :(得分: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" %>

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

我希望这有助于其他人。

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

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

如果右键单击后无法看到转换为Web应用程序,可以单击项目菜单,然后在底部看到转换为Web应用程序

答案 5 :(得分:0)

我认为中间是3个问题的混合问题:

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

就我而言,该问题是在复制/添加现有aspx文件后出现的。 检查所有名称空间是否正确后,问题就解决了。

答案 6 :(得分:-2)

看起来您的问题可能是大写ID,而不是设置元素的ID。根据您发布的代码,还不确定id如何成为对象。