我正在尝试在 C# 中创建动态元标记,但出现以下错误:
无法修改 Controls 集合,因为控件
包含代码块(即 )
这是我添加的代码:
HtmlMeta meta = new HtmlMeta();
meta.Name = "keywords";
meta.Content = "book,paper";
Page.Header.Controls.Add(meta);
非常感谢。
很难确定,因为你没有提供很多细节,但我认为正在发生的事情是<% ... %>
你里面的代码块Page.Header
(这是指<head runat="server">
- 可能在母版页中)。因此,当您尝试将项目添加到该控件的 Controls 集合时,您会在该问题的标题中收到错误消息。
如果我是对的,那么解决方法就是包装一个<asp:placeholder runat="server">
周围的标签<% ... %>
代码块。这使得代码块成为 Placeholder 控件的子级,而不是Page.Header
控制,但它根本不会改变渲染的输出。现在代码块不是Page.Header
您可以将内容添加到标题的控件集合中,而不会出现错误。
同样,某处存在代码块,否则您不会看到此错误。如果它不在您的 aspx 页面中,那么我首先要查看的位置是MasterPageFile
属性位于 aspx 顶部。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)