【问题标题】:Why does my ASP.NET page add the prefix 'ctl00_ctl00' to html element IDs and break the design?为什么我的 ASP.NET 页面会在 html 元素 ID 中添加前缀“ctl00_ctl00”并破坏设计?
【发布时间】:2010-09-17 01:07:48
【问题描述】:

我不明白。

母版页中 html 元素的 id 由相同的 id 更改,但带有前缀,这破坏了 css 设计。

在我的母版页中:

<div id="container" runat="server">

    <asp:ContentPlaceHolder ...

...

以上代码渲染完毕

<div id="ctl00_ctloo_container">

     ...

而且 CSS 样式明显消失了。

我该如何阻止它?

谢谢!

【问题讨论】:

    标签: asp.net .net css


    【解决方案1】:

    我不需要 runat="server" 标记并将其删除。不知道它为什么在那里......现在ID没有改变。谢谢

    【讨论】:

      【解决方案2】:

      你需要 runat="server" 标签吗?如果您没有对代码隐藏中的 div 元素做任何事情,请将其删除。

      【讨论】:

        【解决方案3】:

        WebForms 应该只重写服务器控件的 ID(例如 &lt;asp:ContentPlaceHolder /&gt;,而不是像 &lt;div id="container"&gt; 这样没有 runat="server" 的普通 HTML 元素

        您无法阻止框架重写服务器控件上的 ID。不过,您可以改用类名。

        【讨论】:

        • 非常感谢大家,在这种情况下我在div中添加了runat="server",抱歉我第一次没有提供它,这就是为什么ID被改变了!!跨度>
        【解决方案4】:

        AFAIK 你不能这样做。由于控制树,这是默认行为。

        如果你想使用 CSS 直接设置 CSS 类,不要依赖 ID,比如

        <asp:Whatever runat="server" id="whatever" CssClass="whateverClass">
        

        更新:Here 是一个类似的线程,但它对你的 CSS 问题没有帮助。

        【讨论】:

          猜你喜欢
          • 2017-01-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-01
          • 2018-01-06
          相关资源
          最近更新 更多