2011-11-16 60 views
1

目前我在asp.net mvc項目,這將有2個或更多的主題,CSS主題,所以我問什麼是最好的wqy處理請求喜歡這個。 我可以讓用戶寫在CSS文件或sholud我在數據庫中存儲一些CSS值,並在用戶登錄後在jss中用css加載它? 我只是尋找最好的方法和方法來做到這一點很好,順利。如何讓用戶改變CSS和加載自己的風格

+0

你有已創建或用戶可以創建自己的不同的主題主題並保存以供將來登錄? – Murtaza

+0

我已經創建了2個CSS主題,但我想在未來的用戶會想要創建自己的主題,所以我的問題是關於該部分: 1如何存儲用戶樣式和位置? 2如何加載它,甚至可以爲用戶使用cookie,因爲他們的CSS? – GoranB

回答

0

您應該將CSS值存儲在數據庫中,然後在用戶登錄時加載它。這是最簡單的方法。

但是,當您的網站有很多日誌用戶時,它會顯着降低網站的速度。

更高級的方法是當用戶填寫表單並點擊保存一個php腳本可以生成並保存一個CSS文件(可以稱爲user_id.css)。我不記得爲什麼功能這樣做,但谷歌或本網站是你的朋友在這裏。然後,當用戶登錄CSS文件時,位置將被保存在數據庫中,並在頭標中調用

+0

我不是在用php工作:)我是古董你有任何存儲css數據庫和加載它在用戶登錄的例子嗎? – GoranB

+0

我只使用PHP。肯定可以用其他腳本語言 –

1

如果您有預定義的主題,用戶可以選擇其未來登錄名,您可以在您的主題表中創建主題表數據庫並將相應的主題ID存儲到用戶。如果用戶沒有選擇任何主題,您將擁有默認主題。

然後在你的服務器上分別創建主題的css文件,每個主題都會有不同的文件。

但是,如果用戶在未來登錄時爲用戶選擇了主題,那麼將其保存在數據庫中後,您將在登錄後驗證用戶身份。將值傳遞給窗體上的任何隱藏字段並使用隱藏字段中的id值更改樣式表並使用javascript在每個網頁上加載相同的文件。

您的評論後:

如果希望將控制權交給用戶創建自己的風格,我覺得基本上這將是顏色的改變和字體的變化,U可以創建具有相同的類名不同的CSS文件,並在登錄後加載它們。以數據庫中的id爲基礎,這將有助於您更快地加載頁面,並減少數據庫連接。

你可以得到對頁面的加載使用

if (!Page.User.Identity.IsAuthenticated) 
{ 
    MembershipUser member = Membership.GetUser(); 
    if (member != null) 
     { 
     ProfileCommon opC = Profile.GetProfile(Email.Text); 
     hdnTheme.Value = opC.ThemeID; 
     hdnUserID.Value = member.ProviderUserKey.ToString(); 

     } 

} 
在你的ASPX代碼

的用戶ID

$(document).ready(function(){ 
var themeid = $("#hdnTheme.ClientID").val() 
var UserID= $("#hdnUserID.ClientID").val() 

if (themeid == 1)// for user specific theme 
<link href="includes/css/"+ UserID +".css" type="text/css" rel="stylesheet" /> 
else if (themeid == 2) // for the theme which you have created and already the file exists 
    <link href="includes/css/2.css" type="text/css" rel="stylesheet" /> 
else 
    <link href="includes/css/default.css" type="text/css" rel="stylesheet" /> 

});