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



Q:

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

登录页面:

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

一切都很好。

其他页面的母版页:

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

显示以下错误:

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

如果我使用<%#和:

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

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

您不需要使用任何形式的数据绑定,只需放置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" />

最新更新