是否从ASP.NET Web控件引用外部文件?

是否从ASP.NET Web控件引用外部文件?,asp.net,webforms,web-controls,Asp.net,Webforms,Web Controls,从我的ASP.NET web控件引用外部文件的首选方法是什么 我的web控件需要访问两个外部文件。一个是CSS文件。另一个是JavaScript文件 <link href="<%= VirtualPathUtility.ToAbsolute("~/css/mycss.css") %>" rel="stylesheet" type="text/css" /> <script src="<%= VirtualPathUtility.ToAbsolute("~/sc

从我的ASP.NET web控件引用外部文件的首选方法是什么

我的web控件需要访问两个外部文件。一个是CSS文件。另一个是JavaScript文件

<link href="<%= VirtualPathUtility.ToAbsolute("~/css/mycss.css") %>" rel="stylesheet" type="text/css" />
<script src="<%= VirtualPathUtility.ToAbsolute("~/scripts/myjs.js") %>" type="text/javascript"></script>

该页可能包含我的控件的多个实例。当然,我只希望页面包含对每个文件的单个引用

我查看了
页面。ClientScript
属性和方法。但它似乎没有一个专门针对CSS的

我还研究了如何使用
Page.Header.Controls.Add(link)
,但这似乎不直接支持防止对同一文件的多个引用


还有其他选择吗?

好的,显然没有首选的方法:

以下似乎正在发挥作用:

if (!Page.ClientScript.IsClientScriptIncludeRegistered("MyControl.ascx.cs"))
{
    Page.ClientScript.RegisterClientScriptInclude("MyControl.ascx.cs", ResolveClientUrl("~/scripts/myjs.js"));

    HtmlHead head = (HtmlHead)Page.Header;
    HtmlLink link = new HtmlLink();
    link.Attributes.Add("href", "~/css/mycss.css");
    link.Attributes.Add("type", "text/css");
    link.Attributes.Add("rel", "stylesheet");
    head.Controls.Add(link);
}

您不需要css href上的
ResolveClientUrl
吗?这可能是个好主意。但是,在我的例子中,结果链接实际上是“./css/[mycss].css”,这是正确的路径。