我继承了一个包含大量带有硬编码客户端ID的javascript的应用程序。
过去当我进行负载测试时,我似乎记得有时生成的客户端ID将以ctl01开头。
在什么情况下会发生这种情况?
答案 0 :(得分:9)
首先,'ctlxx'是控制主页面的前缀。
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的外观,因为我现在没有可用的工具来提供证明:/