HttpException(0x80004005)控件包含代码块(即<%...%>)

时间:2015-09-23 12:28:37

标签: c# asp.net ajaxcontroltoolkit

坚持这个!将评级控件添加到我的aspx.page后调试,我收到错误:

  

System.Web.HttpException:无法修改Controls集合   因为控件包含代码块(即<%...%>)。

我知道标题<%= System.Web.Optimization.Scripts是原因。

回顾一下;一切都编译,直到添加评级控制。如果我将<%=设置为<%# + Page.Header.DataBind();页面编译,但显然不会触发脚本。

所以需要一些帮助!谢谢

[HttpException (0x80004005): The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).]
   System.Web.UI.ControlCollection.Add(Control child) +9855103
   AjaxControlToolkit.ToolkitResourceManager.RegisterCssReferences(Control control) +829
   AjaxControlToolkit.ExtenderControlBase.OnLoad(EventArgs e) +81
   System.Web.UI.Control.LoadRecursive() +54
   System.Web.UI.Control.LoadRecursive() +145
   System.Web.UI.Control.LoadRecursive() +145
   System.Web.UI.Control.LoadRecursive() +145
   System.Web.UI.Control.LoadRecursive() +145
   System.Web.UI.Control.LoadRecursive() +145
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772


<head runat="server">
<title>bla</title>

<%= System.Web.Optimization.Styles.Render("~/css") %>
<%= System.Web.Optimization.Scripts.Render("~/bundles/jquery") %>
<%= System.Web.Optimization.Scripts.Render("~/bundles/stack") %>    

    $(document).ready(function () {


    });

</script>

2 个答案:

答案 0 :(得分:1)

此示例向if(parseInt($(this).attr('data-col')) > 1) { $(".gridster ul").data('gridster').move_widget($(this), 1, lastRow); } 添加资源,但也适用于<head>工作的任何控件

对于CSS:

Controls.Add()

对于JS:

System.Web.UI.WebControls.Literal lit = new System.Web.UI.WebControls.Literal();
lit.Text = System.Web.Optimization.Styles.Render("~/bundles/my_css").ToHtmlString();
Header.Controls.Add(lit);

尝试从codebehind添加

答案 1 :(得分:1)

我更改了Page.Header.DataBind();在我的代码后面的this.Header.DataBind();它工作正常! thnx to contributors