Используйте SquishIt и получите «коллекцию элементов управления нельзя изменить, поскольку элемент управления содержит блоки кода» - PullRequest
1 голос
/ 07 декабря 2011

Я пишу проект веб-сайта .net 2.0 и некоторое время счастливо использовал SquishIt для минимизации и объединения с помощью CSS и Javascript. Я недавно начал получать эту ошибку:

The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>). 

HttpException (0x80004005): The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).]
   System.Web.UI.ControlCollection.Add(Control child) +11035338
   Telerik.Web.SkinRegistrar.RegisterCssReference(Page _page, Control _control, String _url) +413

[HttpException (0x80004005): Please, see whether wrapping the code block, generating the exception, within RadCodeBlock resolves the error.]
   Telerik.Web.SkinRegistrar.RegisterCssReference(Page _page, Control _control, String _url) +533
   Telerik.Web.SkinRegistrar.RegisterCssReferences(ISkinnableControl _control) +828
   Telerik.Web.UI.RadComboBox.OnPreRender(EventArgs e) +32
   System.Web.UI.Control.PreRenderRecursiveInternal() +108
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3394

Как вы видите, мы также используем элементы управления Telerik на сайте, поэтому я подозреваю, что это проблема.

Я пытался использовать API SquishIt для вызова команд Add и Render из кода, но он не дал никаких результатов.

Есть идеи? Я бы не стал отказываться от SquishIt, так как в противном случае он отлично работает.

1 Ответ

1 голос
/ 09 декабря 2011

Я нашел решение. Оказывается, когда вы используете элементы управления Telerik Rad на своем сайте и если у вас есть какие-либо блоки кода в заголовке ваших главных страниц, вам нужно включить специальный тег блока кода Telerik .

С этим тегом теперь я могу использовать SquishIt без ошибок!

...