我知道在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.cs
(public 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。