![](/img/trans.png)
[英]Code behind fix for “ The Controls collection cannot be modified because the control contains code blocks (i.e. <% … %>)”
[英]HttpException (0x80004005) control contains code blocks (i.e. <% … %>)
卡在這個! 將分級控件添加到我的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>
本示例將資源添加到<head>
但還可以與Controls.Add()
一起使用的任何控件一起使用
對於CSS:
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);
對於JS:
System.Web.UI.WebControls.Literal lit = new System.Web.UI.WebControls.Literal();
lit.Text = System.Web.Optimization.Scripts.Render("~/bundles/my_js").ToHtmlString();
Header.Controls.Add(lit);
嘗試從代碼隱藏添加
我改變了Page.Header.DataBind(); 在我的代碼中this.Header.DataBind(); 而且效果很好! 感謝貢獻者
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.