ASP.NET 2.5 префикс ctl00 и ASP.NET 4, не префикс ctl00
Кто-нибудь знает, почему ASP.NET 4 сбросил префикс ctl00
на элементы управления ASP?
Есть ли уставка, которую я пропустил?
Ответы
Ответ 1
В ASP.NET 4.0 они внедрили поддержку синтаксиса HTML. Вы можете прочитать об этом в блоге Скотта Гуга. Если вы хотите классическую модель для идентификаторов клиентов, вы можете настроить свой web.config:
<configuration>
<system.web>
<pages controlRenderingCompatibilityVersion="3.5" />
И это упростит ваше приложение. Вы можете изменить это на каждый элемент управления (и на страницу), используя свойство Control.ClientIDMode
, которое также можно установить в веб-конфигурации:
<configuration>
<system.web>
<pages clientIDMode="AutoID|Predictable|Static|Inherit" />
AutoID
отображает элементы управления с помощью классической модели ASP.NET 2.0.
Ответ 2
Насколько я помню его до ASP.NET, чтобы решить, какой префикс использовать.
Его плохая практика для ссылки на элементы управления с жестко обозначенным значением id.
Вы должны использовать свойство ClientId, которое всегда будет генерировать ваш правильный Id:
<td class="tmarg10" style="width: 150px">
<label for="<%=txtName.ClientID %>">
Name of the mall group :</label>
</td>
<td class="tmarg10">
<asp:TextBox ID="txtName" runat="server" Columns="90" /> <br />
</td>
В приведенном выше примере вычисляется правильный идентификатор текстового поля и помещается в атрибут метки. Таким образом, вы больше не будете беспокоиться о сохранении одного и того же идентификатора элемента управления.
Ответ 3
Не настройка, а решение MS упростить, как идентификаторы элементов управления в контейнерах преобразуются в клиент.
Вот сообщение блога Скотта Гатри, объясняющее изменения. Обоснование:
Чистая, стандартная, CSS-Friendly Markup
Ответ 4
Если вы просто хотите добавить префикс 'ct100' к вашим идентификаторам управления, добавьте главную страницу в свой WebPage. Но как сказано выше, старайтесь избегать использования hardcode с идентификаторами элементов управления в ваших источниках и читать комментарии Metthew для генерации пользовательского идентификатора