无法修改 Controls 集合,因为控件包含代码块(即 <% ... %>)

2024-04-12

我正在尝试在 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(使用前将#替换为@)

无法修改 Controls 集合,因为控件包含代码块(即 <% ... %>) 的相关文章

随机推荐