Asp.net 是否可以基于主题加载JavaScript?

Asp.net 是否可以基于主题加载JavaScript?,asp.net,kentico,app-themes,Asp.net,Kentico,App Themes,我正在为一个客户开发一个有3个可用主题的网站。我正在使用app_主题系统来允许用户更改样式。每个主题使用几个不同的JavaScript文件来加载自定义字体。基于所选主题加载这些JavaScript文件的最佳方法是什么 据我所知,Kentico使用与默认ASP.net webforms相同的应用程序主题系统 理想情况下,我希望能够将适当的JavaScript文件添加到相应的App_主题文件夹中,并让ASP将标记添加到文档头。如果这不是一个选项,我已经考虑编写一个ScriptLoader JavaS

我正在为一个客户开发一个有3个可用主题的网站。我正在使用app_主题系统来允许用户更改样式。每个主题使用几个不同的JavaScript文件来加载自定义字体。基于所选主题加载这些JavaScript文件的最佳方法是什么

据我所知,Kentico使用与默认ASP.net webforms相同的应用程序主题系统


理想情况下,我希望能够将适当的JavaScript文件添加到相应的App_主题文件夹中,并让ASP将标记添加到文档头。如果这不是一个选项,我已经考虑编写一个ScriptLoader JavaScript,它将检查样式表标记,以确定正在使用哪个主题。如果我可以在body元素上添加主题名作为class属性,然后查看它并引入适当的脚本,那就更好了

如果你不使用Kentico,我想我找到了一个解决方案,包括制作一个Web部件或控件

 public static void AddScriptToHead(HtmlHead h, string script, bool AddScriptTags)
{
    Literal l = new Literal();

    if (AddScriptTags)
        l.Text = "<script type=\"text/javascript\" src=\""
                + script +
                "\"></script>";
    else
        l.Text = script;
    h.Controls.Add(l);
}

protected void SetupControl()
{
    if (this.StopProcessing)
    {
        // Do nothing
    }
    else
    {
        string theme = Page.Theme;


        if (theme != null)
        {

            if (theme.Equals("Card"))
            {
                AddScriptToHead(Page.Header, "~/App_Themes/Cardamon/js/cufon-colors-classic.js", true);
                AddScriptToHead(Page.Header, "~/App_Themes/Cardamon/js/Charis_SIL_700.font.js", true);
            }
            else if (theme.Equals("CardamonWave"))
            {
                AddScriptToHead(Page.Header, "~/App_Themes/Cardamon/js/cufon-colors-wave.js" ,true);
                AddScriptToHead(Page.Header,  "~/App_Themes/Cardamon/js/Lobster_14_400.font.js",true);
            }
            else if (theme.Equals("CardamonAncient"))
            {
                AddScriptToHead(Page.Header, "~/App_Themes/Cardamon/js/cufon-colors-ancient.js", true);
                AddScriptToHead(Page.Header, "~/App_Themes/Cardamon/js/Charis_SIL_700.font.js", true);
            }
            else
            {
                //Y U no theme?
            }
        }

    }
}
publicstaticvoidaddscripttohead(htmlheadh,stringscript,bool-AddScriptTags)
{
文字l=新文字();
if(AddScriptTags)
l、 Text=“”;
其他的
l、 文本=脚本;
h、 添加(l);
}
受保护的无效设置控件()
{
如果(这是停止处理)
{
//无所事事
}
其他的
{
字符串主题=Page.theme;
if(主题!=null)
{
if(主题相等(“卡片”))
{
AddScriptToHead(Page.Header,“~/App_Themes/Cardamon/js/cufon colors classic.js”,true);
AddScriptToHead(Page.Header,“~/App_Themes/Cardamon/js/Charis_SIL_700.font.js”,true);
}
else if(主题相等(“小豆蔻波”))
{
AddScriptToHead(Page.Header,“~/App_Themes/Cardamon/js/cufon colors wave.js”,true);
AddScriptToHead(Page.Header,“~/App\u Themes/Cardamon/js/Lobster\u 14\u 400.font.js”,true);
}
else if(主题等于(“小豆蔻”))
{
AddScriptToHead(Page.Header,“~/App_Themes/Cardamon/js/cufon colors-olution.js”,true);
AddScriptToHead(Page.Header,“~/App_Themes/Cardamon/js/Charis_SIL_700.font.js”,true);
}
其他的
{
//你没有主题吗?
}
}
}
}
我想在将来扩展它,以接受脚本和主题作为属性,但现在就可以了