我正在使用MVC / Razor / .Net / C#,我想允许用户更改网站的主题,就像你可以在微软windows中更改主题一样。
有谁知道如何,或者,可以指向一些好的教程/示例。
干杯
答案 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文件来呈现观点(这对我来说也太复杂了。)