从ASP.NET 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>
该页面可能包含我的控件的多个实例。当然,我只希望页面包含对每个文件的单个引用。
我查看了Page.ClientScript
属性和方法。但它似乎没有专门用于CSS。
我还考虑使用像Page.Header.Controls.Add(link)
这样的东西,但这似乎没有直接支持阻止对同一文件的多次引用。
还有其他选择吗?
答案 0 :(得分:0)
好的,显然没有首选的方法:
以下似乎正在起作用:
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);
}