Веб-формы ASP.Net - страницы clientIdMode
Я нахожусь в процессе обновления устаревшего веб-сайта ASP.Net (веб-форм) с.NET 3.5 до.NET 4.5. Я недавно заметил, что после обновления некоторые элементы управления ASP.Net были переименованы из ctl00_Content_dropDown1
в ctl00$Content$dropDown1
в HTML, ломая много клиентского JavaScript.
Как я могу остановить это изменение после обновления?
1 ответ
docs.Microsoft.com говорит, что переход с.NET 3.5 на.NET 4.0 (или выше) вызывает это критическое изменение, которое меняет способ, которым id
атрибут для элементов генерируется.
В файле web.config измените <pages>
элемент, добавьте clientIDMode
приписать это так:
<pages clientIDMode="AutoID" ...
Это должно продолжать делать идентификаторы, как это было раньше.
В дополнение к AutoID
MSDN перечисляет несколько других полезных опций:
- AutoID - автоматическая генерация сегментов с символом подчеркивания
- Inherit - наследовать режим из родительского контейнера
- Предсказуемый - значение по умолчанию для страницы в.NET 4.0 и выше
- Статический - для ClientID установлено значение свойства ID
Visual Studio должна установить ClientIDMode
в AutoID
однако при обновлении с.NET 3.5 до.NET 4.5 я не думаю, что он работает, если у вас нет веб-проекта ASP.Net (.csproj), а вместо этого все, что у вас есть, - это веб-сайт ASP.NET.