Недавно я изменил структуру веб-сайта, чтобы использовать мастер-страницы. Первая проблема заключалась в том, что весь javascript не работал, потому что все идентификаторы изменены, поэтому document.getElementById ('id') может найти идентификатор, потому что теперь id был ct100_something_id. Я установил это с помощью ClientIDMode = «Static», но теперь я обнаружил, что у меня есть другая проблема при обратной передаче, поскольку я использую Request.Form, и все атрибуты имени по-прежнему меняются на ct100 _....Главная страница/страница контента и имя Request.Form/Control
как я вижу, нет ClientNameMode, поэтому как остановить asp.net от создания «причудливых» атрибутов имени. Я не могу явно указать атрибут name на элементах управления сервером.
Просто для уточнения:
Есть ли способ сделать это:
<asp:HiddenField runat="server" ID="hdnUsername" Value="" />
... оказывать как:
<input type="hidden" name="hdnUsername" id="hdnUsername" value="" />
... и НЕ как:
<input type="hidden" name="ctl00$bodyContent$hdnUsername" id="hdnUsername" value="" />
?
Он добавляет префикс, так что не будет ID столкновения между элементами управления в Masterpage и управлением на страницах – Shai
контента при создании элементов управления динамически можно еще Р.Х. ClientIDMode = Static тем контролирующих –
вы должны использовать document.getElementById ('<% = TextBoxName.ClientID% /'). это позволит получить идентификатор клиента asp.net, сгенерированный –