Я занимаюсь обновлением устаревшего веб-сайта ASP.Net (веб-формы) с .NET 3.5 до .NET 4.5. Недавно я заметил, что после обновления некоторые элементы управления ASP.Net были переименованы с ctl00_Content_dropDown1 в ctl00$Content$dropDown1 в HTML, что нарушило большую часть клиентского JavaScript.
Как я могу предотвратить появление этого изменения после обновления?





docs.Microsoft.com говорит, что переход с .NET 3.5 на .NET 4.0 (или выше) вызывает это критическое изменение, которое изменяет способ создания атрибута id для элементов.
В файле web.config измените элемент <pages>, добавьте к нему атрибут clientIDMode следующим образом:
<pages clientIDMode = "AutoID" ...
Это должно продолжить создание идентификаторов так, как это было раньше.
Помимо AutoID, MSDN перечисляет несколько других полезных опций:
Visual Studio должна установить ClientIDMode на AutoID при обновлении с .NET 3.5 до .NET 4.5, однако я не думаю, что это работает, когда у вас нет веб-проекта ASP.Net (.csproj), а вместо этого все, что у вас есть это веб-сайт ASP.NET.