在ASP.NET中动态加载css

时间:2011-01-06 14:27:34

标签: asp.net themes

我正在我的母版页中加载一个CSS ...

<link rel="stylesheet" href="css/mystyles.css" title="styles" type="text/css" />

现在我想根据web.config键动态加载它。是否有更好/标准的方法来做到这一点,或者我的想法是标准方式?

由于

4 个答案:

答案 0 :(得分:6)

选项1:

您可以在css链接中添加runat =“server”属性,并从文件后面的代码中设置href值,您可以在其中动态设置它。

选项2:

HtmlLink link = new HtmlLink();
link.Attributes["href"] = filename;
link.Attributes["type"] = "text/css";
link.Attributes["rel"] = "stylesheet";
Page.Header.Controls.Add(link);

答案 1 :(得分:1)

选项4:将整个链接添加到代码

void AddStylesheet(string ssRef) {
    HtmlHead head = Page.Header;

    Literal l = new Literal(); 
    l.Text = "<link href=\""+ssRef + "\" type=\"text/css\" rel=\"stylesheet\" />";
    head.Controls.Add(l);
}   

......这与选项2基本相似

答案 2 :(得分:0)

选项3:

在头标记中,您可以通过将样式表路径存储在会话变量中来使样式表动态化:

 <link rel="stylesheet" type="text/css" href="<%=Session("PathToStyleSheet") %>" />

答案 3 :(得分:0)

选项5:

将CSS放入新的App_Themes子文件夹中,并使用web.config主题设置主题名称。然后从主页的代码中加载主题。但要小心;主题按字母顺序加载CSS文件。