我遇到了将控件动态加载到母版页的ContentPlaceHolder中的问题。
ContentPlaceHolder的名称和UserControl的路径从db加载并发送到这个小代码:
控制c = this.Page.LoadControl(uc-path-from-db);
this.Page.Master.FindControl(CPH-名称从-DB).Controls.Add(C);
当我运行它时,我收到此错误:
无法修改Controls集合,因为该控件包含代码块(即<%...%>)。
我做错了什么?
答案 0 :(得分:0)
如果没有你的标记,它并不完全清楚,但它告诉你你不能在那里添加控件,因为你的一些标记包含<%...%>阻止它告诉ASP.NET执行其中的任何内容来创建标记。尝试删除你的<%...%>块,它应该让你添加控件。或者发布您的标记以获得更完整的答案。
答案 1 :(得分:0)
根据您正在使用的网络项目的类型,您必须确保<%@ Register%>你正在加载它的MasterPage上的UserControl,以及你正在加载它的页面。如果您正在使用Web 站点而不是Web 应用程序,它会将每个页面编译成小程序集,并且不会引用usercontrol的程序集,除非它看到该参考标记中的标记。
我不是百分之百,但值得一看。