【问题标题】:The Controls collection cannot be modified because the control contains code blocks (i.e. <% … %>)无法修改 Controls 集合,因为该控件包含代码块(即 <% ... %>)
【发布时间】:2012-01-09 09:20:22
【问题描述】:

问:

我想将 favicon.ico 添加到我的 Web 应用程序中。所以我将图标添加到我的解决方案中,然后我编写以下内容:

登录页面:

 <link rel="shortcut icon" href="<%=ResolveUrl("~/favicon.ico")%>"/>

一切正常。

其他页面的母版页:

<link rel="shortcut icon" href="<%=ResolveUrl("~/favicon.ico")%>"/>

显示以下错误:

无法修改 Controls 集合,因为该控件 包含代码块(即 )。

如果我改用&lt;%# 并且:

protected override void OnLoad (EventArgs e)
{
  base.OnLoad (e);
  Page.Header.DataBind ();
}

这是不是性能降低了?如何解决这个问题?

【问题讨论】:

    标签: c# asp.net performance master-pages favicon


    【解决方案1】:

    您不需要使用任何形式的数据绑定,只需输入 runat="server",运行时会将标记解析为 GenericHtmlControl,并且 Url 属性将以与普通 ASP.Net ServerControl 相同的方式解析。

    <link rel="shortcut icon" runat="server" href="~/favicon.ico" />
    
    // will render as
    <link rel="shortcut icon" href="favicon.ico" />
    

    【讨论】:

      猜你喜欢
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-08
      • 2011-06-27
      相关资源
      最近更新 更多