Почему моя страница ASP.NET добавляет префикс «ctl00_ctl00» к идентификаторам элементов html и нарушает дизайн? - PullRequest
5 голосов
/ 14 октября 2008

Я не понимаю этого.

Идентификаторы HTML-элементов на главной странице изменяются с тем же идентификатором, но с префиксом, и это нарушает дизайн CSS.

На главной странице у меня есть:

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

    <asp:ContentPlaceHolder ...

...

Код выше приведен

<div id="ctl00_ctloo_container">

     ...

И стили CSS явно исчезли.

Как мне это остановить?

Спасибо!

Ответы [ 4 ]

4 голосов
/ 14 октября 2008

Веб-формы должны переписывать только идентификаторы серверных элементов управления (например, <asp:ContentPlaceHolder />, а не обычный элемент HTML, например <div id="container"> без runat="server"

.

Вы не можете запретить платформе перезаписывать идентификаторы на серверных элементах управления. Вместо этого вы можете использовать имена классов.

1 голос
/ 14 октября 2008

Вам нужен тег runat = "server"? Если вы ничего не делаете с элементом div в своем коде, удалите его.

1 голос
/ 14 октября 2008

AFAIK вы не можете сделать это. Это поведение по умолчанию из-за дерева управления.

Если вы хотите использовать CSS, то установите класс CSS напрямую, не зависите от идентификаторов, например

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

Обновление: Здесь является темой similair, но она не поможет в вашей проблеме CSS.

0 голосов
/ 14 октября 2008

Мне не нужен тег runat = "server", и я удалил его. Не знаю, почему это было там ... Идентификаторы не изменились. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...