私は MVC/Razor/.Net/C# を使用しています。Microsoft Windows でテーマを変更できるように、ユーザーがサイトのテーマを変更できるようにしたいと考えています。
誰かが方法を知っているか、またはいくつかの優れたチュートリアル/例の方向に私を向けることができますか.
乾杯
私は MVC/Razor/.Net/C# を使用しています。Microsoft Windows でテーマを変更できるように、ユーザーがサイトのテーマを変更できるようにしたいと考えています。
誰かが方法を知っているか、またはいくつかの優れたチュートリアル/例の方向に私を向けることができますか.
乾杯
これは非常に幅広い質問であり、正しいアプローチはいくらでもあります。
各リクエスト中に、ユーザーが選択した 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>
通常、この機能は複数の CSS ファイルで実現され、.NET とはほとんど関係がありません (またはまったく関係ありません)。
CSS ファイルを変更することで、適用される CSS ごとに出力全体が異なるように、セマンティックな方法で HTML を設計する必要があります。
このリンクは、主題へのより説明的なイントロを提供します-> http://www.thesitewizard.com/css/switch-alternate-css-styles.shtml
それを行った後、アプリケーションで行う必要があるのは、(どのスキンの) ユーザー設定をセッションなどに保存し、それに応じて CSS ファイルを変更することです。
Asp.Net WebForms にはスキン/テーマ機能がありましたが、廃止されたと思います (あまり良くありません)。開発者が HTML の代わりに XML および XSLT ファイルを使用してビューをレンダリングする実装も見ました (これは私の好みには複雑すぎます)。