ASP.NET服务器端控件未在CodeBehind中声明

时间:2012-09-24 16:10:43

标签: asp.net .net visual-studio-2010 declaration server-side-controls

我知道在Visual Studio中直接在HTML中声明服务器端控件一直存在问题。通常,您必须在设计模式下打开页面才能在代码中生成它们,以便您可以通过代码进行访问。但我这里确实有一个奇怪的问题。我在继承母版页的页面上添加了一个asp:Label控件。

<asp:Label ID="uxEnteteresultat" runat="server" Text="Test"></asp:Label>

这些页面使用名为Ext.Net的框架生成Ext.js代码。我的设计师根本无法工作,所以我无法在代码隐藏文件中生成此控件。

那些控件在哪里宣布???在旧版本的.Net(我在使用4.0框架的VS 2010中),我们可以在部分类中看到它。他们现在在哪里 ?在VS 2010中是否有自己声明控件的解决方法?

谢谢!


根本没有designer.cs文件。这是一个网站,而不是一个项目。这可能是问题的一部分......

3 个答案:

答案 0 :(得分:3)

VS 2010 中,每个表格应分为三部分:

  • MyForm.aspx
  • MyForm.aspx.cs
  • MyForm.aspx.designer.cs

您应该可以像这样添加标签:

将此添加到MyForm.aspx

<asp:Label ID="lblOrganizer" runat="server" /> 

将其添加到MyForm.aspx.designer.cspublic partial class内):

protected global::System.Web.UI.WebControls.Label lblOrganizer;

答案 1 :(得分:1)

mypage.aspx 页面内声明的控件是在 mypage.aspx.designer.cs

内的部分类中创建的
/// <summary>
/// uxEnteteresultat control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label uxEnteteresultat;

如果未在此文件中声明您的控件,则不会出现在代码隐藏 mypage.aspx.cs 中。请记住,所有控件都应在HTML声明中包含属性runat =“server”。

答案 2 :(得分:0)

检查这个类似的问题:

Asp.net controls are not accessible in code behind

如果你正在获得intellisense,那么你很好,因为你不必在ASP.NET 2.0(部分类)之后在代码隐藏中显式声明你的控件。如果您无法访问它,请检查您的设计器文件并手动将其添加到那里 user1694951。