Controls集合不能被修改,因为控件包含代码块(即<%...%>)?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

试图在C#中创建动态元标记,但它会产生以下错误:

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

这是我添加的代码:

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

提问于
用户回答回答于

很难说清楚,因为你没有包含很多细节,但我认为发生了什么是你的<% ... %>代码块Page.Header<head runat="server">可能是在母版页中)。因此,当尝试将某个项目添加到该控件的Controls集合时,您会在此问题的标题中看到错误消息。

用户回答回答于

如果正在使用Telerik组件,并且javascript中有一个引用(<%=...%>),那么就用RadScriptBlock包装您的脚本标记。

 <telerik:RadScriptBlock ID="radSript1" runat="server">
   <script type="text/javascript">
        //Your javascript
   </script>
</telerik>

扫码关注云+社区