2014-12-03 266 views
0

我在Visual Studio中有一个奇怪的问题,我无法从代码隐藏页面引用控件。在当前上下文中不存在名称“Label1”

举一个非常简单的例子,我的网页是这样的:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="New.aspx.cs" Inherits="ITDashboard.idea.New" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
    </form> 
</body> 
</html> 

而且我隐藏的是:

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

namespace ITDashboard.idea 
{ 
    public partial class New : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      Label1.Text = "hello"; 

     } 
    } 
} 

的应用程序称为ITDashboard,而这个页面是一个文件夹中所谓的“想法”。

环顾四周,有些帖子建议删除设计器文件并重新创建它。然而,VS2012没有我能看到的选择。另外,即使在网站的根目录下,我也会得到与新空白页面相同的错误。

+3

在您发布的代码中没有控制'somecontrol'。 – 2014-12-03 12:47:01

+0

但你应该发布确切的错误,你得到的确切代码。然而,正如SuncoastOwner发布的,“文本”是大写字母...... Intellisense应该可以帮助您。 – Andrew 2014-12-03 12:51:43

+0

什么是在designer.cs文件中。如果没有'Lable1'的定义,那么你不能在你的代码中引用它。 – 2014-12-03 12:52:58

回答

0

如果您正在加倍设置Label1的文本...将Label1.text更改为Label1.Text。

+0

这只是一个错字!问题在于它没有看到代码隐藏的控制。 – Ben 2014-12-03 12:56:16

1

我还没有足够的积分来添加评论,所以请在回复框中原谅该评论!

我以前见过这个。 “This”= VS不向设计器文件添加控件。从我所能找到的信息来看,这只是页面中的腐败。或者如果它发生在所有页面上,这是项目的腐败。你没有做任何事情导致它,所以在将来避免它没有什么可以做的。幸运的是,在与VS的各种版本工作13年以上,我只看过两三次。

安德鲁钉了它。如果问题与此页面分离,则创建一个新页面并一次复制一个控件的损坏页面。如果它在项目层面(听起来像是这样),那么您将有更多的工作要做。

下面是关于如何从破坏的项目恢复一个很好的提示:

How can I recover a corrupt .csproj file in Visual Studio 2010?

祝你好运!

1

以为我会张贴万一有人有同样的事情。

我看到的所有网页文章都指向“转换为web应用程序”(现在在VS2013中的Project下)。然而,这不适合我。

最后通过改变.NET框架类型(任意地为4.5)来得到它的工作。然后,我重新运行“转换为Web应用程序”选项,并重新创建了designer.cs文件。

此外,我添加的任何新控件现在都会自动添加到designer.cs中。

+0

啊!是的,始终使用Web应用程序开始。很高兴你解决了。 – 2014-12-03 16:30:08

+0

虽然这是一件棘手的事情。这是一个以前的网络应用程序,我认为它仍然是。框架切换将它踢回了生命中,我只需再次进行转换就可以重新创建我以前删除的设计器文件。 – Ben 2014-12-03 16:37:55

相关问题