ASP.Net Webforms - страницы clientIdMode - PullRequest
0 голосов
/ 27 июня 2018

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

Как я могу остановить это изменение после обновления?

1 Ответ

0 голосов
/ 27 июня 2018

docs.Microsoft.com говорит о том, что переход с .NET 3.5 на .NET 4.0 (или выше) вызывает это критическое изменение, которое изменяет способ создания атрибута id для элементов.

В файле web.config измените элемент <pages>, добавьте к нему атрибут clientIDMode следующим образом:

<pages clientIDMode="AutoID" ...

Это должно продолжать делать идентификаторы так, как это делалось раньше.

В дополнение к AutoID, MSDN перечисляет несколько других полезных опций:

  • AutoID - автоматическое создание сегментов с символом подчеркивания
  • Inherit - наследовать режим из родительского контейнера
  • Predictable - значение по умолчанию для страницы в .NET 4.0 и выше
  • Статический - для ClientID установлено значение свойства ID

Visual Studio должен установить ClientIDMode на AutoID при обновлении с .NET 3.5 до .NET 4.5, однако я не думаю, что это работает, если у вас нет веб-проекта ASP.Net (. csproj) и вместо этого все, что у вас есть, это веб-сайт ASP.NET.

...