我有一个简单的输入元素runat="server"
。该字段嵌套在几层用户控件中,我使用 getter 提取 ID,但给出的 ID 不是完整生成的 ID。
//UserControl2.ascx nested inside of UserControl1.ascx
...
<input type="text" runat="server" id="newTextBox" />
...
//UserControl1.ascx.cs nested inside of Page1.aspx
...
public string NewTextBoxId;
protected void UserControl2PlaceHolder_Load(object sender, EventArgs e)
{
var c = LoadControl("~/Common/Controls/Shared/UserControl2.ascx");
NewTextBoxId = ((App.Common.Controls.Shared.UserControl2) c).newTextBox.ClientID;
}
问题是 NewTextBoxId 设置为“newTextBox”,而不是完全生成的“ct100_ct100_MainContent_etc._newTextBox”。输入的 ID 在 HTML 中正确呈现,但 NewTextBoxId 设置不正确。更奇怪的是,输入的 ID 在我的本地实例上呈现为“newTextBox”,但是当我部署到我们的登台服务器时,它在 HTML 中呈现为“ct100_ct100..._newTextBox”。对此有什么想法吗?