Это часть HTML-кода, отправляемого в браузер для кнопки ссылки на стороне сервера:
<asp:LinkButton id="lbtnApplicationName" runat="server" OnClick="SomeFuncHere" Text="Get Application Name" />
И эта кнопка находится внутри безымянного элемента управления, который по умолчанию имеет имя ctl05
, и находится внутри другого элемента управления, который также не имеет имени, поэтому получила имя по умолчанию ctl00
и т. Д. И т. Д. И т. Д.
В общем случае ASP.NET
фреймворк создает окончательный идентификатор элемента на основе его прямого идентификатора и связывает идентификатор его родительских элементов управления, включая заполнители содержимого.
Для элементов формы их name
строится аналогичным образом, за исключением того, что вместо _
он использует $
для «цепочки» идентификаторов родителей.
Почему? Чтобы избежать возможности иметь более одного элемента с одинаковым идентификатором в одном и том же документе HTML. (Или два элемента формы с одинаковым именем, когда они находятся в разных элементах управления)
Теперь этот последний идентификатор используется, чтобы сообщить серверу, какой элемент управления вызвал PostBack - это выполняется с помощью функции JavaScript, автоматически записываемой на страницу средой, которая получает идентификатор элемента в качестве аргумента.