3

为什么我收到此错误“当前上下文中不存在名称'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 文件并重新创建它,但没有用。

4

7 回答 7

2

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

编辑:

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

解决您的问题::

用这个替换你的行:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ajaxTesting._Default" %>
于 2011-05-15T13:35:35.123 回答
0

第1步:

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

第2步:

如果步骤 1 没有解决它:在 Visual Studio 中,转到编辑 -> 查找和替换 -> 在文件中查找并在您的项目中搜索具有相同名称的控件。

第 3 步

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

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

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

重新启动 IIS 并重试(在您尝试了前面的一个或两个步骤之后)。

于 2011-05-15T14:01:19.427 回答
0

最好的解决方案是:

  1. 复制之间的所有代码行<body> and </body>
  2. 在您的项目中创建一个新aspx页面。
  3. <body>标签替换为您复制的标签
  4. .cs同样,也从文件中复制并粘贴代码。

我觉得这应该可以解决你的问题。

于 2011-05-15T14:12:02.847 回答
0

我有的另一种可能性:

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

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

于 2013-11-10T15:17:10.033 回答
0

从其他人导入源文件后,我遇到了这个问题。过了一会儿,我发现我没有任何 Designer.cs 文件。

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

于 2014-01-17T15:21:00.510 回答
0

我在 asp.net 网站(3.5)中遇到了同样的问题,在我的情况下,同一个文件有 2 个副本。

  1. 计算.aspx
  2. Compute_backup.aspx

我从网站上排除了#2 文件,它对我有用。

于 2014-08-04T07:00:46.000 回答
0

我完全删除了重新创建的顶点文件并保留了对象名称_Default。然后我开始相应地调整 C# 代码,瞧,它工作正常。这是在 VS2008 中使用 ASP.NET 3.5 时的情况。在这种情况下,我让它工作了,但是 VS2008 仍然有一些时髦的东西,否则就没有必要了。

于 2018-03-24T13:56:00.450 回答