【问题标题】:mvc razor allow users to select there own theme cssmvc razor 允许用户选择有自己的主题 css
【发布时间】:2012-12-18 12:27:05
【问题描述】:

我正在使用 MVC/Razor/.Net/C#,我希望允许用户更改网站的主题,就像您可以在 microsoft windows 中更改主题一样。

有谁知道如何,或者,可以指出一些好的教程/示例的方向。

干杯

【问题讨论】:

    标签: c# css asp.net-mvc razor


    【解决方案1】:

    这是一个非常非常广泛的问题,有许多正确的方法。

    您可以创建一个基本控制器,在每次请求期间从数据库中加载用户选择的 CSS 主题名称。然后您可以将该值放入ViewBag(或ViewData)并在您的视图中引用它:

    <head>
      @{
        var themeName = ViewBag.ThemeName;
      }
      @if (String.IsNullOrWhiteSpace(themeName)) {
        themeName = "default";
      }
      <link href="@Url.Content(String.Format("~/themes/{0}.css", themeName))" type="text/stylesheet" />
    </head>
    

    【讨论】:

    • 干杯 @Yuck 会试试这个。
    • 我试过了,但没有成功,viewbag 改变了,但页面没有。干杯。
    【解决方案2】:

    通常此功能是通过多个 CSS 文件实现的,并且与 .NET 几乎没有关系(或与 .NET 无关)。

    您应该以语义方式设计您的 HTML,以便通过更改 CSS 文件,整个输出随着应用的每个 CSS 不同而不同。

    此链接对该主题进行了更详细的介绍 -> http://www.thesitewizard.com/css/switch-alternate-css-styles.shtml

    完成此操作后,您需要在应用程序中将用户偏好(什么皮肤)存储在会话或类似内容中,并相应地更改 CSS 文件。

    Asp.Net WebForms 曾经有皮肤/主题功能,但我认为它已被弃用(它不是很好),我还看到了一个实现,其中开发人员使用 XML 和 XSLT 文件而不是 HTML 来呈现视图(这对我来说也太复杂了)。

    【讨论】:

    • 对于 MVC,它实际上确实与 .NET 有关。这就是重点。
    • 我想明确的是,MVC 没有任何特定的东西可以帮助您将主题/多种样式应用于您的应用程序。这个问题与技术无关,相同的方法适用于不同的语言和平台。
    • Cheers @tucaz 将点击提供的链接并接受您的反馈。
    • 我按照 thesitewizard 中的示例进行操作,它的工作原理正是我需要的,加油。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多