C'est difficile à dire avec certitude car vous n'avez pas donné beaucoup de détails, mais je pense que ce qui se passe, c'est qu'il y a <% ... %>
à l'intérieur de votre Page.Header
(qui fait référence à <head runat="server">
- éventuellement dans une page maître). Par conséquent, lorsque vous essayez d'ajouter un élément à la collection Controls de ce contrôle, vous obtenez le message d'erreur mentionné dans le titre de cette question.
Si j'ai raison, alors la solution consiste à envelopper un fichier <asp:placeholder runat="server">
autour du <% ... %>
bloc de code. Cela fait du bloc de code un enfant du contrôle Placeholder, au lieu d'être un enfant direct du contrôle Placeholder. Page.Header
mais cela ne change pas du tout la sortie rendue. Maintenant que le bloc de code n'est pas un enfant direct de Page.Header
vous pouvez ajouter des éléments à la collection de contrôles de l'en-tête sans erreur.
Encore une fois, il y a un bloc de code quelque part, sinon vous ne verriez pas cette erreur. Si ce n'est pas dans votre page aspx, alors le premier endroit où je chercherais est le fichier référencé par la balise MasterPageFile
en haut de votre aspx.