无法修改Controls集合,因为控件包含代码块(即<%...%>)

时间:2012-01-09 09:20:22

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

问:

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

登录页面:

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

每件事都没问题。

其他页面的母版页:

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

显示以下错误:

  

由于控件无法修改Controls集合   包含代码块(即&lt;%...%&gt;)。

如果我使用<%#代替:

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

性能会降低吗?以及如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

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

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

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