我正在使用 MVC/Razor/.Net/C#,我希望允许用户更改网站的主题,就像您可以在 microsoft windows 中更改主题一样。
有谁知道如何,或者,可以指出一些好的教程/示例的方向。
干杯
我正在使用 MVC/Razor/.Net/C#,我希望允许用户更改网站的主题,就像您可以在 microsoft windows 中更改主题一样。
有谁知道如何,或者,可以指出一些好的教程/示例的方向。
干杯
这是一个非常非常广泛的问题,有许多正确的方法。
您可以创建一个基本控制器,在每个请求期间从数据库加载用户选择的 CSS 主题名称。然后您可以将该值放入ViewBag
(or 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>
通常这个功能是通过多个 CSS 文件实现的,并且几乎没有(或与 .NET 无关)。
您应该以语义的方式设计您的 HTML,以便通过更改 CSS 文件,整个输出随着应用的每个 CSS 不同而不同。
此链接对该主题进行了更详细的介绍-> http://www.thesitewizard.com/css/switch-alternate-css-styles.shtml
完成此操作后,您需要在应用程序中将用户偏好(什么皮肤)存储在会话或类似内容中,并相应地更改 CSS 文件。
Asp.Net WebForms 曾经有皮肤/主题功能,但我认为它已被弃用(它不是很好),我还看到了一个实现,开发人员使用 XML 和 XSLT 文件而不是 HTML 来呈现视图(其中对我的口味来说也太复杂了)。