在运行时更改 CSS 文件(主题)(ASP.NET)

发布于 2024-12-11 08:07:14 字数 590 浏览 0 评论 0原文

我想更改 ASP.NET Web 应用程序运行时使用的 CSS 文件。

假设我有 2 个 CSS 文件,red.cssblue.css

我尝试了以下方法:

在我的母版页中,我有以下链接:

在母版页Page_Load:

Styles.Href = Global.CSSPath;

Global.asax:

public static string CSSPath =“red.css”;(假设其位于同一文件夹中)

这种方法有效。当然,我可以轻松地实现一些功能来更改 CSSPath 的值并将其设置为 blue.css 或其他任何内容 - 现在我想知道这是否只影响一个用户或使用我的 Web 应用程序的每个用户。

如果它只影响一位用户:太好了,谢谢!如果没有:我应该做什么才能实现在运行时为特定用户/会话更改主题?

谢谢,

丹尼斯

I'd like to change the CSS File that's being used at runtime of my ASP.NET Web Application.

Let's say I've got 2 CSS Files, red.css and blue.css.

I've tried the following approach:

In my Master Page, I've got the following link:

<link rel="Stylesheet" ID="Styles" runat="server"/>

In the Master Pages Page_Load:

Styles.Href = Global.CSSPath;

Global.asax:

public static string CSSPath = "red.css"; (assuming its in the same folder)

This approach works. And of course I could easily implement some functionality to change the value of CSSPath and make it blue.css or whatever - now I'd like to know whether this only affects one user or everyone using my web application.

If it only affects one user: Great, thanks! If it doesn't: What should I do to achieve being able to change themes at runtime for a specific user/session?

Thanks,

Dennis

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

倾其所爱 2024-12-18 08:07:14

当您从静态(全局)变量读取值时,它将影响所有用户。

要在运行时更改主题,您可以像现在一样在服务器端执行此操作,但您需要获取用户特定值(可能来自会话)。

It will affect all users as you're reading the value from a static (global) variable.

For changing the theme at runtime you can do it server-side as you are now but you need to pick up the user specific value, maybe from Session.

等风来 2024-12-18 08:07:14

尝试在您的 html 中添加类似的内容

    <script runat="server">

    protected void Page_Init(object sender, EventArgs e)
    {   
      HtmlLink csslink = new HtmlLink();
      csslink.Href = "~/red.css";
      csslink.Attributes.Add("rel", "stylesheet");
      csslink.Attributes.Add("type", "text/css");
      Page.Header.Controls.Add(csslink);    
    }
   </script>

try adding something like this in your html

    <script runat="server">

    protected void Page_Init(object sender, EventArgs e)
    {   
      HtmlLink csslink = new HtmlLink();
      csslink.Href = "~/red.css";
      csslink.Attributes.Add("rel", "stylesheet");
      csslink.Attributes.Add("type", "text/css");
      Page.Header.Controls.Add(csslink);    
    }
   </script>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文