我继承了一个应用程序,其中包含大量带有硬编码客户端 ID 的 javascript。
过去我做负载测试时,我似乎记得有时生成的客户端 ID 会以 ctl01 开头。
在什么情况下会出现这种情况?
首先,'ctlxx' 是控件母版页的前缀。
ASP.NET 引擎在运行时为那些没有明确设置 ID 的控件设置 ID 值。它使用命名模式 ctlXX,其中 XX 是一个顺序递增的整数值。因此,在嵌套母版页的情况下,您将获得前缀作为ctlxx
递增xx
值的位置。
控件的Id
值以母版页的 ID 值作为前缀ctl00
。最终效果是一个 id 属性值,由ID values of the master page
、ContentPlaceHolder 控件和控件本身组成。
结论 -
因此,更改前缀的唯一情况ctlxx
是 .aspx 页面具有嵌套母版页。
有关详细信息,请参阅内容页面中的控件 ID 命名 (C#)。
我认为这是为每个嵌套母版页创建的 id,您可能希望通过嵌套来测试理论,然后查看 Id 的外观,因为我现在没有可用的工具来提供证明:/