mvc razor允许用户选择自己的主题css

时间:2012-12-18 12:27:06

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

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

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

干杯

2 个答案:

答案 0 :(得分:4)

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

您可以创建一个基本控制器,在每次请求期间从数据库加载用户选择的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>

答案 1 :(得分:3)

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

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

此链接提供了有关该主题的更多解释性介绍 - &gt; http://www.thesitewizard.com/css/switch-alternate-css-styles.shtml

执行此操作后,您需要在应用程序中执行的操作是在会话中存储用户首选项(在什么样的外观中),并相应地更改CSS文件。

Asp.Net WebForms用于获取Skin / Theme功能,但我认为它已被弃用(它不是很好)而且我还看到了一个实现,其中开发人员使用XML和XSLT文件来呈现观点(这对我来说也太复杂了。)