我想在我的网页上添加一个ajax:TabContainer.我没有得到任何构建错误,但是当我尝试浏览到该页面时,它给出了错误:"控件集合无法修改,因为控件包含代码块(即<%...%>)." .
我重新下载了样本站点的Ajax Control Toolkit,在VS中打开了解决方案,为TabContainer运行了样本,并且运行正常.我认为它可能是Ajax Control Toolkit的另一个版本 - 但没有.这两个站点引用的AjaxControlToolkit.dll文件是相同的.为什么我不能让TabContainer在我的网站上运行?
还有一个问题,但我不知道它是否相关.我刚刚安装了Visual Studio 2008.一旦我打开我的网站,VS就会自动在工具箱中创建"AJAX Controls"选项卡,并用所有ajax控件填充它.在源代码中,所有控件都以"ajax"为前缀 - 即"
但是,当我打开示例网站时,Visual studio在工具箱中创建了另一个选项卡 - "AjaxControlToolkit Components",其中包含与"AJAX Controls"中相同的所有控件.我不知道为什么它两次添加相同的控件(但奇怪的是,在工具箱中有不同的图标).在源代码中,所有控件都以"ajaxToolkit"为前缀 - 即"
您不能在使用标准服务器呈现的控件中使用<%=%>(写入)块 - 您会收到此错误.
为了使ASP AJAX组件能够工作,您需要:
...
否则它也会因此错误而崩溃.
但是,您可以在这些服务器控件中进行数据绑定:
" /> ...
然后在你的页面加载:
Page.Header.DataBind();
由于ASP WebForms将控件呈现为组件集合的方式发生错误 - 它们可以处理集合(并期望数据绑定<%#)或文字写入(并期望<%=)但不能同时处理两者.
永久避免此问题的最佳方法是切换到ASP MVC.