В ASP.NET, когда я пытаюсь добавить динамический элемент управления (включая проверку) к Placeholder
или любому другому контейнеру элемента управления, имя элемента управления становится важным. Например, это очень нормально, легко добавлять код управления.
var control = LoadControl("TestUserControl.ascx");
control.ID = Guid.NewGuid().ToString();
PlaceHolder1.Controls.Add(control);
как видите, я даю подсказку для ID контроля. В среде выполнения этот код завершается сбоем, и компилятор говорит, что это ошибка javascript и сообщение об ошибке типа «;» ожидаемый символ, отсутствует ... и т. д.
Проблема очень интересная. Динамически добавленный элемент управления ASP.NET (включает проверку), вызывает ошибку из-за символа «-» в свойстве динамически именованного идентификатора (или что-либо вроде «-», «. 'И т. Д.).
Когда я уточняю свой код, например:
var control = LoadControl("TestUserControl.ascx");
control.ID = Guid.NewGuid().ToString().Replace("-", string.Empty);
PlaceHolder1.Controls.Add(control);
проблема исчезнет:)
Это ошибка в ASP.NET 3.5 ? Почему это выглядит как ошибка JavaScript на странице?