在什么情况下ctl00前缀会呈现为其他ex。 ctl01?

时间:2012-09-05 22:37:38

标签: asp.net webforms naming

我继承了一个包含大量带有硬编码客户端ID的javascript的应用程序。

过去当我进行负载测试时,我似乎记得有时生成的客户端ID将以ctl01开头。

在什么情况下会发生这种情况?

2 个答案:

答案 0 :(得分:9)

首先,'ctlxx'是控制主页面的前缀。

enter image description here

ASP.NET引擎在运行时为那些尚未显式设置ID的控件设置ID值。它使用命名模式ctlXX,其中XX是顺序递增的整数值。因此,对于嵌套母版页,您将获得ctlxx前缀,其中xx将增加值。

Control的Id值以主页的ID值ctl00为前缀。净效果是一个id属性值,由ID values of the master page,ContentPlaceHolder控件和Control本身组成。

结论 -

因此,只有当ctlxx前缀被更改时才会出现.aspx页面的嵌套母版页。

有关详细信息,请参阅Control ID Naming in Content Pages (C#)

答案 1 :(得分:1)

我认为这是为每个嵌套母版页创建的id,您可能希望通过嵌套测试理论,然后查看Ids的外观,因为我现在没有可用的工具来提供证明:/