2009-04-20 37 views
31

我有一個ASP.Net 2.0網站,並希望將其翻譯成MVC範式(我是新手),但從零開始。Asp.Net MVC主題,如何?

我在我的舊網站有一些主題,但在這裏和那裏閱讀,似乎主題不適合MVC範式。

的問題是:

什麼是MVC爲建設一個主題用戶自定義網站的最佳做法? 如果適用,你可以舉一個小例子嗎?

注:我知道this,但他們沒有談論最佳實踐或如何開始。

+0

你需要多少定製?如果僅僅是關於顏色和字體,一個簡單的CSS替換就可以實現。 – User 2009-04-20 20:37:52

+0

主要是我希望用戶能夠改變主題,在Asp.Net 2.0中我很容易實現,並且想知道一個典型的MVC-ish人將如何得到這個方法 – 2009-04-20 20:51:12

回答

26

這裏是我的代碼,我已經使用了ASP.NET MVC中實現「主題」:

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

很高興,當你能夠只是換出CSS文件來更改主題,但這在很多情況下確實不太實際。特別是當每個主題需要有完全不同的佈局時。在這種情況下,您需要更改呈現的CSS和HTML,這就是爲什麼我編寫了上述鏈接中找到的代碼的原因。

20

乾淨,語義正確的HTML具有良好的CSS就是這樣,任何題材的web應用程序,無論是ASP.NET,回報率,PHP等

的CSS的強大是CSS Zen Garden最好的例子。

w3schools有一個不錯的introduction/tutorial to CSS

每個用戶可以有一個相關的樣式表這將獲得選擇時適用,即:

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

雖然這是真的,並且這些都是很好的資源 - 它不解決問題。看起來Jhonny正在尋找在ASP.NET MVC項目中實現主題系統的技巧和技巧。 – Jason 2010-01-08 15:40:16

+5

@Jason:你說得對,我只是添加了一種可能的方式來實現這一點。 – 2010-01-08 17:13:16

1

jQuery-ui主題是好的,而不是太難實現。

只需鏈接到js和css文件,不要忘記圖標。並確保在這些鏈接中使用Url.Content()。否則,它可能無法鏈接到正確的路徑,一旦你部署在生產服務器上(我陷入了一次陷阱)。

2

由於主題旨在設計標籤,所以您可以使用CSS創建類似的方法。我可能會建議您先將默認主題複製到css定義,例如

HTML:<input type="button" />

CSS:輸入{顏色:淡藍色}

那麼對於任何有你的非默認主題,你可以只申請類給他們。將所有主題重新編寫爲CSS需要一段時間,但一旦完成,就值得付出努力。