标签在当前上下文中不存在

时间:2011-05-15 13:11:43

标签: asp.net vwdexpress

为什么我得到这个错误“当前上下文中不存在名称'lblHelloWorld'”?我该如何解决?

<%@ Page Language="C#" AutoEventWireup="True" Inherits="_Default"      Codebehind="Default.aspx.cs" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0     Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Hello, world!</title>
</head>
<body>
<form id="form1" runat="server">
    <asp:ScriptManager ID="MainScriptManager" runat="server" />
    <asp:UpdatePanel ID="pnlHelloWorld" runat="server">
        <ContentTemplate>
            <asp:Label runat="server" ID="lblHelloWorld" Text="Click the button!" />
            <br /><br />
            <asp:Button runat="server" ID="btnHelloWorld" OnClick="btnHelloWorld_Click" Text="Update label!" />
        </ContentTemplate>
    </asp:UpdatePanel>
</form>

using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ajaxTesting
{
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnHelloWorld_Click(object sender, EventArgs e)
    {
        lblHelloWorld.Text = "Hello, world - this is a fresh message from ASP.NET AJAX! The time right now is: " + DateTime.Now.ToLongTimeString();
    }
}
}

我尝试过清洁和反叛;删除designer.cs文件并重新创建它但没有用。

7 个答案:

答案 0 :(得分:1)

我认为designer.cs文件中的问题。请尝试在designer.cs文件中为此标签手动添加引用。

修改

修改代码后的问题出在name space

解决问题::

用此替换你的行:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ajaxTesting._Default" %>

答案 1 :(得分:0)

第1步:

复制aspx表单,代码隐藏和设计器文件,然后通过复制和粘贴重新创建表单。

第2步:

如果步骤1无法修复它:在Visual Studio中,转到编辑 - &gt;查找和替换 - &gt;在文件中查找并在项目中搜索具有相同名称的控件。

第3步

关闭Visual Studio和所有浏览器。暂时停止IIS并导航到临时ASP.NET文件文件夹(计算机上的路径可能不同):

C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files

从底部开始删除此处的站点文件夹中的所有内容(因为您可能会获得ACL文件夹权限限制)。

重新启动IIS并重试(在您尝试过上述一个或两个步骤之后)。

答案 2 :(得分:0)

最好的解决方案是:

  1. 复制<body> and </body>
  2. 之间的所有代码行
  3. 在项目中创建一个新的aspx页面。
  4. <body>标记替换为您复制的标记
  5. 同样复制并粘贴.cs文件中的代码。
  6. 我觉得这可以解决你的问题。

答案 3 :(得分:0)

我有另一种可能性:

如果您复制.cs文件,例如:复制“Default.aspx.cs”,获取“Default.aspx - Copy.cs”(现在您在同一文件夹中有两个文件), 结果将是:文件将出现在项目文件列表中。即使将复制的文件排除在项目之外,但将文件保留在同一文件夹中也无法解决问题。

为避免此问题,请从项目文件夹中删除复制的文件。

答案 4 :(得分:0)

从其他人导入源文件后出现此问题。过了一会儿,我发现我没有任何designer.cs文件。

我遵循this解决方案。特别是关于“转换为Web应用程序”的部分。这对我有用了!

答案 5 :(得分:0)

我在asp.net网站上面临同样的问题(3.5)在我的案例中,有两份同一文件。

  1. Compute.aspx
  2. Compute_backup.aspx
  3. 我从网站上排除了#2文件,它对我有用。

答案 6 :(得分:0)

我完全删除了apex文件,重新创建它并留给对象名_Default。然后我开始相应地调整C#代码,瞧,它工作正常。这是在VS2008中使用ASP.NET 3.5时。在这种情况下,我得到了它的工作,但仍然有一些关于VS2008的时髦或者这没有必要。