0

我有一个网络用户控件:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="SitewideNotification.ascx.cs" Inherits="Controls_Fresh_SitewideNotification" %>

<asp:PlaceHolder runat="server" ID="Javascript">
    test
</asp:PlaceHolder>

在我背后的代码中,我有:

protected void Page_Load(object sender, EventArgs e)
{
    Page.Master.FindControl("JSContent").Controls.Add(Javascript);
}

我的母版页以:

        <asp:ContentPlaceHolder runat="server" ID="JSContent"/>

    </form>

</body>
</html>

但我得到了错误:

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

Page.Master.FindControl("JSContent").Controls.Add(Javascript);

我有点迷茫这是为什么,有人知道如何解决吗?

4

1 回答 1

0

当我在页面的头部有带有 <% %> 块的 javascript 代码时,我通常会看到这种情况。当你将它从头部移到身体下方时,它似乎在我所见过的情况下消失了。由于您没有向我们展示那部分代码,因此很难确切地说出问题所在,但这里有一篇关于该问题的好帖子:

http://leedumond.com/blog/the-controls-collection-cannot-be-modified-because-the-control-contains-code-blocks/

于 2012-10-18T13:40:58.040 回答