2011-04-11 38 views
2

我一直在研究一個MVC3新項目,我想介紹動態主題的概念。MVC3中的動態主題

而不是創造一堆.css文件和動態鏈接到 正確的,我想用在主<head>部分 ,指定要使用的值的選擇和他們的特性<style>部分。

值會從數據庫中拉出並寫在風格標題部分, 這個樣子的:

<head> 

<style type="text/css"> 
.testClass { color:Purple;background-color:LightGreen; } 
</style> 

</head> 
+0

您是否使用Razor語法或舊的「Web窗體」語法,使用'<% %>'標記? – 2012-03-25 02:44:18

回答

1

沒有就如何實現這一目標本身,不亞於一個建議的答覆你重新考慮。我已經看到這種方法多年來第一次被直接採用,並且它總是首先編寫一個專有工具來編輯數據庫主題,然後進行昂貴的重寫,以便將所有主題從數據庫中提取出來並存入適當的css文件中。

沿着將樣式放入數據庫的路徑的一個典型原因往往是希望允許給定樣式在個案基礎上「重寫」 - 例如,在應用程序服務提供者模型,其中一個客戶只想更改一種或兩種默認樣式。然而,「級聯樣式表」中的「級聯」允許這種確切的行爲,而不會放棄恰當的css和相關工具的所有優點 - 只要您在頁頭中按正確順序排列樣式表(例如「maintheme。 css「,然後是」customerX.css「),您只需要重新定義客戶樣式表中的感興趣樣式,並自動覆蓋主題樣式表中的樣式(假設css選擇器具有相同的優先級)。

與數據庫驅動的樣式表相關但略有不同的原因是允許最終用戶或企業所有者自己編輯樣式。除少數例外情況外,這種功能在實際應用中比使用時更少使用,也更難維護。在這種情況下,自定義樣式的數量在理論上相當小 - 大概完全受到限制 - 並且您將編寫一個專有工具以允許對它們進行編輯,無論如何,我再次建議僅將自定義樣式寫入在文件系統上的css文件,而不是數據庫(或作爲CDN的斑點等)。