ASP.NET 未在代码隐藏中声明的服务器端控件



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

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

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

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

谢谢!


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

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;

在 mypage.aspx page 中声明的控件是在 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"。

检查这个类似的问题:

Asp.net 控件在代码隐藏中不可访问

如果你正在获得智能感知,那么你很好,因为自 ASP.NET 2.0(分部类)以来,您不必在代码隐藏中显式声明您的控件。如果无法访问它,请检查您的设计器文件并手动将其添加到每个用户1694951。