1

我有一个<div>想要动态添加一些 HTML<a>元素的元素。那部分似乎工作得很好。这是HTML:

<div id="crumbBar" runat="server"/>

在我后面的代码中,添加 HTML 锚点按预期工作;但是,当页面呈现时,id 更改为“workArea_crumbBar”(这都在母版页中)。

<div>我尝试使用适当的 id在id 中动态创建一个<div>,但这也在 id 前面加上“workarea_”。

我还有其他依赖<div>元素 id 的代码。有什么方法可以防止 IIS 更改主元素或嵌套元素的 id?

4

1 回答 1

1

尝试像这样更改您的 div:

<div id="crumbBar" runat="server" ClientIDMode="Static" /> 

事实上,这不是 IIS 而是 ASP.Net 框架的行为。控件以树的形式组织,最终的客户端 ID 将是所有祖先 ID 串联的结果。

目标是避免两个控件之间的 Id 冲突。冲突的一个例子是当您创建一个用户控件时,例如:<asp:label id="mylbl" runat="server" />. 如果您实例化两次用户控件,则两个控件在客户端将具有相同的 Id 而没有此行为。

这意味着您必须谨慎使用此属性,因为它可能会导致一些晦涩的问题。如果可以,您应该寻找另一种解决方案。在构建 .Net 应用程序 12 年后,我再也不用使用这个属性了。可能有其他选择。

于 2012-10-15T15:28:31.933 回答