我正在努力解决我认为应该是标准做法的事情。我有许多使用一些 JQuery 插件的用户控件。我真的不想从我的主主页链接到额外的 CSS 和 JS 文件,因为这会在用户第一次访问网站时导致额外的负载(诚然,这只是一次),所以我只是把它们链接到用户控件的顶部。然后我查看了我的源 HTML,不好看!对于在页面上重复多次的控件来说更糟。
所以我在想有没有办法在用户控件需要它们时将它们注入(inject)页面的头部。就此而言,有没有办法对 JS 内容的页脚进行处理?
最佳答案
要在 ASP.NET 中动态注册脚本(并确保合并重复项),您可以调用:
Page.ClientScript.RegisterClientScriptInclude(
"mykey", "~/scripts/jquery-1.3.2.js");
并在 MSDN 上阅读有关此方法的完整详细信息.
要动态添加 CSS,您可以执行以下操作:
HtmlLink cssLink = new HtmlLink();
cssLink.Href = "path to CSS";
cssLink.Attributes["some attr1"] = "some value1";
cssLink.Attributes["some attr2"] = "some value2";
Page.Header.Controls.Add(cssLink);
这个注入(inject) CSS 的例子不会合并重复的条目。为避免重复,您必须自己跟踪重复项。您可以在 HttpContext.Items 中存储已注册的脚本列表。在其中粘贴一个 HashSet 来保存所有已注册脚本的列表,这样您就不会两次注册同一个 CSS 文件(这通常是无害的,但无论如何都要避免)。
关于asp.net - 从用户控件将代码注入(inject)母版页/html 头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2038631/