55 votes

La collection Controls ne peut pas être modifiée car le contrôle contient des blocs de code (c'est-à-dire <% ... %>).

J'essaie de créer des métabalises dynamiques en c#.

Il donne l'erreur suivante La collection Controls ne peut pas être modifiée car le contrôle contient des blocs de code (c.-à-d. <% ... %> )

Voici le code que j'ai ajouté

HtmlMeta meta = new HtmlMeta();
meta.Name = "keywords";
meta.Content = "book,paper";
Page.Header.Controls.Add(meta);

Merci beaucoup

0voto

LoveRight Points 909

Cela ne résout pas vraiment votre question mais c'est une alternative importante.

Si vous souhaitez ajouter du html personnalisé au début de la page (à l'intérieur de la page <body> ), vous pouvez utiliser l'élément Page.ClientScript.RegisterClientScriptBlock() .

Bien que la méthode soit appelée "script", vous pouvez ajouter une chaîne arbitraire, y compris html.

0voto

chetan Points 105

À l'intérieur de ContentPlaceholder, placez le contrôle de l'espace réservé, par exemple comme ceci,

<asp:Content ID="header" ContentPlaceHolderID="head" runat="server">
       <asp:PlaceHolder ID="metatags" runat="server">
        </asp:PlaceHolder>
</asp:Content>

Code Behind :

HtmlMeta hm1 = new HtmlMeta();
hm1.Name = "Description";
hm1.Content = "Content here";
metatags.Controls.Add(hm1);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X