объяснение различий в строке формата имени уникального повторителя ASP.NET - PullRequest
0 голосов
/ 10 сентября 2010

Может ли кто-нибудь объяснить причины, по которым свойство name дочерних элементов управления Repeater будет генерироваться по-разному в приложении ASP.NET при его развертывании на разных серверах IIS?

Один из нескольких серверов IIS Имя генерируется в формате:

String.Format("{0}:_ctl{1:00}:{2}", RepeaterControlID, itemIndex, ChildControlID);

, например

<input name="Mntc_Software_List:_ctl1:id" id="Mntc_Software_List__ctl1_id" type="hidden" value="1772" />

и на других серверах IIS формат:

String.Format("{0}$ctl{1}${2}", RepeaterControlID, itemIndex, ChildControlID);

1012 *, например *

<input name="Mntc_Software_List$ctl01$id" type="hidden" id="Mntc_Software_List_ctl01_id" value="1772" />

Ответы [ 2 ]

1 голос
/ 10 сентября 2010

Разница между вашими двумя именами заключается в том, что один использует разделитель '$', а другой - разделитель ':'. Использование отражателя Лутца в классе Control показывает, что этим управляет свойство 'EnableLegacyRendering', которое связано с XHTML 1.0 - соответствующим отображением элемента управления (MSDN) .

Google для EnableLegacyRendering для получения дополнительной информации.

0 голосов
/ 10 сентября 2010

На самом деле, я верю, что одно - это имя, а другое - удостоверение личности.Я забыл, что есть что, но правила для имен и идентификаторов разные.

Если вы уверены, что они оба - Name, то уверены ли вы, что у вас одинаковая версия .NET для обоих серверов?Старые версии могут генерировать свои имена по-разному.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...