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

Bif*_*iff 7 asp.net naming webforms

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

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

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

Par*_*ram 9

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

在此输入图像描述

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

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

结论 -

因此,只有ctlxx在更改前缀的情况下才有.aspx页面的嵌套母版页.

有关详细信息,请参阅内容页面中的控制ID命名(C#).


小智 1

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