Я думаю, что это невозможно. Вот почему обезболивание - это плохо. Нельзя переопределять объекты хоста.
autocomplete="off"
должен работать, но вместо того, чтобы работать и, учитывая, что это не пароль или электронная почта, вы могли бы указать ему случайную строку, чтобы посмотреть, поможет ли это
Например autocomplete="rjftgh"
Если у вас есть поле пароля в вашей форме, вы можете добавить этот атрибут - autocomplete="new-password"
<input type="password" placeholder="Password" autocomplete="new-password">
Примечание: простое изменение атрибута автозаполнения на случайную строку или даже специальный атрибут, такой как «новый пароль», НЕ работает для этой проблемы.
В конце концов я нашел решение. Это скорее хак, поэтому я не слишком доволен этим, но это происходит из ответа Майка Нельсона на следующий вопрос: Отключение автозаполнения Chrome
Его решение включает добавление элементов ввода с их свойство display установлено в «none» над входами, которые заполняются автоматически. Идея заключается в том, что эти скрытые поля вместо этого поглощают автозаполнение.
Я также узнал немного больше о проблеме с ASP.NET и панелями обновления. Когда панель обновления запускает частичную обратную передачу, она использует библиотеку AJAX. Библиотека связывается с сервером для завершения обновления. Что бы AJAX ни делал в фоновом режиме, он также запускает повторное выполнение логики автозаполнения Chrome. Другими словами, всякий раз, когда я динамически добавлял пользовательский элемент управления, первое поле ввода в структуре html этого пользовательского элемента автоматически заполнялось сохраненной электронной почтой пользователя.
Опять же, очень странное и плохое поведение, но отображение полей ввода «нет» помогло.
Если Chrome снова изменит свою логику автозаполнения (они это сделают), я обновлю свой ответ, надеюсь, лучшим решением.