Я немного запутался, как / почему вы видите знаки доллара в id .
При рендеринге веб-элемента управления в разметке ASP.NET генерирует * 1005 элемента* и name
атрибуты на основе свойства ID
веб-элемента управления и его расположения в иерархии элементов управления.Короче говоря, некоторые элементы управления, такие как шаблонные элементы управления или повторяющиеся элементы управления, действуют как именование контейнеров .Значения свойств ID
таких элементов управления имеют префикс перед внутренними элементами управления ID
при определении атрибутов id
и name
.
Например, рассмотрим следующую иерархию элементов управления:
Здесь элементы управления Master Page (ctl00
) и ContentPlaceHolder (MainContent
) являются контейнерами именования.Веб-элемент управления Age
TextBox будет иметь отображаемые значения id
из clt00_MainContent_Age - namely, its own server-side
ID property value prefixed with the
ID` своих предков контейнера именования.
Но обратите внимание, как визуализированный id
разделяет каждый контейнер именованияspot с подчеркиванием. Это функциональность по умолчанию в ASP.NET, поэтому я озадачен тем, почему вы видите знаки доллара в атрибуте id
.(При формулировании атрибута name
ASP.NET разделяет каждое пятно контейнера именования со знаком доллара, но не следует использовать $ при формулировании значения атрибута id
.)
Какая версия ASP.NET вы используете?Ты что-нибудь делаешь ... странно?Как использование пользовательских элементов управления и переопределение свойства IdSeparator
базового Control
класса?Если вы используете ASP.NET 4, вы устанавливаете (намеренно или непреднамеренно) свойство ClientIDMode
элемента управления?