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 для генерации пользовательского идентификатора