«Коллекция элементов управления не может быть изменена, поскольку элемент управления содержит блоки кода (т. Е. <% ...%>)».ошибка может быть очень раздражающей, если не сказать больше.Это ошибка, которую Microsoft отказывается исправить, потому что есть обходные пути.Это происходит, когда вы пытаетесь динамически загрузить элементы управления из кода позади, но ваш источник страницы конфликтует.Может происходить несколько вещей ...
Примечание. Переполнение стека плохо обрабатывает синтаксис примеров кода, поэтому я буду ссылаться на каждый ответ письмом, а в следующем посте япопытаться напечатать пример.Но я не хочу загромождать этот пост, потому что хочу донести свои баллы.
A.) У вас есть <% Response.Write ("что-то")%> в источнике вашей страницы.Или <% CodeBehindMethod ()%>.Удалите это и будьте изобретательны, чтобы заполнить это другим способом !!Одним из способов является размещение элемента управления ASP.NET Panel (например, Panel ==> превращается в тег div при отображении в HTML) на вашу страницу и динамическое заполнение внутреннего атрибута HTML этого элемента управления.Есть и другие способы решения этой проблемы.
B.) Вы пытаетесь использовать jQuery внутри встроенного блока скриптов в вашем контроле, вы также получите это.Окружите блок встроенного кода JavaScript тегом ASP.NET PlaceHolder.Это так просто.Если вы этого не сделаете, некоторые функции jQuery будут работать, но не все!
C.) Если вы используете диспетчер скриптов без главной страницы, я бы посоветовал вам начать использовать главную страницу, чтобы избежать проблем позже,Затем используйте ASP.NET ContentPlaceHolder для своей головы и теги тела, чтобы упростить настройку страниц.Когда вы ссылаетесь на файлы javascript на своей главной странице и используете Script Manager, обязательно поместите тег Scripts внутри тега ScriptManager.Затем внутри тега Scripts поместите тег ScriptReference с указанием пути полного пути ваших файлов Javascript.Обязательно ставьте тильду и косую черту "~ /" в начале вашего пути от корня вашего веб-приложения.Многие поставят свой тег ScriptManager под свой контроль.Не делай этого.Поместите это в свою главную страницу!Это облегчает жизнь.
D.) Если A, B или C не ответили на ваш вопрос, то я бы предложил убрать каждый фрагмент вашей страницы и все элементы управления на нем, и добавить каждый ввремя.Если у вас огромная иерархия страниц и управление наследованием (если в вашем приложении нет мастер-страницы), удачи!В конце концов вы поймете, что вызвало это.