在服务器端控件中使用 <%= %> 会导致无法修改 Controls 集合,因为控件包含代码块(即 <% ... %>)
Posted
技术标签:
【中文标题】在服务器端控件中使用 <%= %> 会导致无法修改 Controls 集合,因为控件包含代码块(即 <% ... %>)【英文标题】:Using <%= %> inside server side controls gives The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>) 【发布时间】:2013-01-13 11:36:30 【问题描述】:我在服务器控件中使用<%= %>
并给我错误:
无法修改 Controls 集合,因为该控件 包含代码块(即 )。
这是我的代码:
<asp:Menu runat="server" >
<Items>
<asp:MenuItem Text="Candidates" NavigateUrl="<%=Constants.AccountPageUrl %>" />
</Items>
</asp:Menu>
【问题讨论】:
控件是否加载到母版页中? 或者试试不加双引号!NavigateUrl=<%= varName %>
【参考方案1】:
试试下面的..它可能对你有帮助
NavigateUrl="<%#Constants.AccountPageUrl %>"
【讨论】:
那永远行不通。因为 # 仅在我们数据绑定时使用。在这种情况下,我放置了静态菜单项。 通过这个链接...它可以帮助你aspdotnet-suresh.com/2011/12/… @Jack - 英镑符号破解是一种解决方法 - 但只有图片的 1/2。 Page.DataBind() 也需要添加到母版页。以上是关于在服务器端控件中使用 <%= %> 会导致无法修改 Controls 集合,因为控件包含代码块(即 <% ... %>)的主要内容,如果未能解决你的问题,请参考以下文章