2009-04-20 21 views
31

私はASP.Net 2.0サイトを持っていて、それをMVCのパラダイムに変換したいと思っています(これは初めてですが)。Asp.Net MVCのテーマ、方法?

私は以前のサイトにいくつかのテーマがありますが、ここではテーマがMVCのパラダイムにうまく収まらないようです。

質問です:

テーマユーザーカスタマイズ可能なサイトを構築するためのMVCでのベストプラクティスは何ですか? 少し例を挙げてもらえますか?

注:私はthisを認識していますが、ベストプラクティスまたは開始方法については言及していません。

+0

どのくらいのカスタマイズが必要ですか?色とフォントについてだけであれば、単純なCSSの置き換えがこのトリックを行います。 – User

+0

主に私はユーザーがThemeを変更できるようにしたい、Asp.Net 2.0で簡単に達成し、通常MVC-ishの人がこのアプローチをどのようにして得られるかを知りたい場合 –

答えて

26

は、私はASP.NET MVCで「テーマ」を実現するために使ってきた私のコードです:

ASP.NET MVC: Implement Theme Folders using a Custom ViewEngine

あなただけのテーマを変更するCSSファイルを入れ替えることができるしているとき、それはうれしいですこれは実際には大した事例ではあまり実用的ではありません。特に、それぞれのテーマが完全に異なるレイアウトを持つ必要がある場合。その場合、レンダリングされるCSSとHTMLを変更する必要があります。そのため、上記のリンクにあるコードを記述しました。

+4

テーマごとにビューとマスターページを作成していませんか? DRYプリンシパルに違反しているようですか? – Amitabh

+1

@Amitabh - そういうわけで、クリスは「CSSをスワップアウトするのはあまり実用的ではない」と述べています。あなたはCSSとHTMLを変更する必要があります。 –

+1

これは、MVC4のレイアウトやテーマを変更する最良の方法ですか?あなたの記事は2009年ですが、ウェブ上で持続しているようです。実際に.NETのやり方はありません...まだですか? – ppumkin

20

良いCSSできれいに、意味的に正しいHTMLは、ASP.NET、RoRの、PHP、CSSの電源がCSS Zen Gardenあるのなど

最良の例だかどうか、テーマへの道、任意のWebアプリです。

w3schoolsはnice introduction/tutorial to CSSです。

ユーザーのそれぞれすなわち、いつでも該当する選択になるだろう関連するスタイルシートを持つことができます。:

<link rel="stylesheet" type="text/css" href="<%= Model.SelectedStyleSheet %>"/> 
+3

これは真実であり、それは質問に対処しません。 JhonnyがASP.NET MVCプロジェクトでテーマシステムを実装するためのヒントやテクニックを探しているようです。 – Jason

+5

@ Jason:そうです、これを実装する方法を追加しました。 –

1

jQuery-uiテーマは実装があまりにもハード素晴らしく、そしてません。

jsとcssファイルにリンクするだけで、アイコンを忘れないでください。これらのリンクでは必ずUrl.Content()を使用してください。さもなければ、プロダクションサーバ(私はそのトラップに一度落ちた)にそれをデプロイすると、正しいパスにリンクされないかもしれません。

+0

これは質問の答えではありません。 – phd

+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューから](/レビュー/低品質の投稿/ 16681117) –

2

テーマは、タグのスタイルを設定するためのもので、CSSを使用して同様のアプローチを作成できます。あなたのデフォルトのテーマをCSSの定義にコピーすることから始めることをおすすめします。

HTML:<input type="button" />

CSS:入力{色:ライトブルー}

は、その後、あなたのデフォルト以外のテーマを持っていた何のためにあなたがちょうどそれらにクラスを適用することができます。すべてのテーマをCSSとして書き直すにはしばらく時間がかかりますが、一度やり直すだけの価値はあります。ここで

関連する問題