Asp.net 使用递归服务器控件时将多个WebResources输出为html

Asp.net 使用递归服务器控件时将多个WebResources输出为html,asp.net,custom-server-controls,webresource.axd,Asp.net,Custom Server Controls,Webresource.axd,我创建了一个服务器控件,它使用递归创建菜单。它本质上输出嵌套列表,其中包含锚点 但是,现在,这可以完美地工作,因为控件正在调用自身来呈现子菜单,所以它也在中呈现多个相同的WebResource.axd javascript文件引用 你知道如何阻止这种事情发生吗?我只想在我的标签中有一个引用。我最终解决了自己的问题,制作了一个表单的私有构造函数: private CustomControl(int level) { this._Level = level + 1; } 公共构造函数看起来像:

我创建了一个服务器控件,它使用递归创建菜单。它本质上输出嵌套列表,其中包含锚点

但是,现在,这可以完美地工作,因为控件正在调用自身来呈现子菜单,所以它也在中呈现多个相同的WebResource.axd javascript文件引用


你知道如何阻止这种事情发生吗?我只想在我的标签中有一个引用。

我最终解决了自己的问题,制作了一个表单的私有构造函数:

private CustomControl(int level)
{
  this._Level = level + 1;
}
公共构造函数看起来像:

public CustomControl() : base()
{
  _Level = 1;
}
然后,在OnInit方法中输出客户端脚本时,我检查了_Level==1,如果_Level==1,则只输出客户端脚本,如下所示:

protected override void OnInit(EventArgs e)
{
  base.OnInit(e);

  if(_Level == 1)
  {
    // Add client scripts to this.Page.Header.Controls
  }
}
我不确定这是否是最好的方法,但它对我很有效