2016-01-06 73 views
-1

是否可以動態設置背景顏色? 我在數據庫中設置了一種顏色。然後從css中的數據庫中讀取顏色。從Asp.net中的數據庫設置css顏色

其實我正在做一個web應用程序,它有藍色按鈕,藍色菜單和額外的。我從樣式表中設置了css顏色並將其加載到標題中。現在我無法將數據從我的cshtml文件傳遞到css文件。那麼如何設置顏色呢?請給我一個方法,讓我可以走這條路,實現我的目標。

+0

你使用的是c#還是vb.net?無論是改變班級的背景顏色都是可能的。 – KratosMafia

+1

是的,這是可能的。如果您顯示一些存根代碼,我們可以提供具體的指導。 – HashPsi

+0

其實我正在做一個web應用程序,它有藍色按鈕,藍色菜單和額外的。我從樣式表中設置了css顏色並將其加載到標題中。現在 我不能從我的cshtml文件傳遞數據到css文件。那麼如何設置顏色呢?請給我一個方法,讓我可以走這條路,實現我的目標。 –

回答

1

你可以編寫一個動作過濾器來從數據庫中獲取你的顏色,將這些值傳遞給你使用它的佈局來覆蓋你的一些CSS樣式定義。

public class MyColors : ActionFilterAttribute 
{ 
    public override void OnActionExecuted(ActionExecutedContext filterContext) 
    { 
     var primarColor = "red"; 
     var vb=filterContext.Controller.ViewBag; 
     vb.PrimaryColor = primarColor; 
     base.OnActionExecuted(filterContext); 
    } 
} 

並在全球範圍內註冊該過濾器,所以這適用於整個應用程序。

protected void Application_Start() 
{ 
    AreaRegistration.RegisterAllAreas(); 
    GlobalConfiguration.Configure(WebApiConfig.Register); 

    GlobalFilters.Filters.Add(new MyColors()); 

    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
    RouteConfig.RegisterRoutes(RouteTable.Routes); 
    BundleConfig.RegisterBundles(BundleTable.Bundles); 
} 

並在您的佈局。

<head> 
    @Styles.Render("~/Content/css") 
    <style> 
     @{ var primary = String.IsNullOrEmpty(ViewBag.PrimaryColor)? 
                  "black": ViewBag.PrimaryColor; } 
     h1 
     { 
      color: @primary; 
     } 
    </style> 
</head> 
+0

感謝您的建議 –

0

定義在.css文件兩種風格:

.blue-button{ 
background: #00f; 
} 

.red-button{ 
background: #f00; 
} 

獲取從數據庫中的屬性,並將其保存在viewbag(或模型本身,也沒關係)。 在你看來,你定義你的按鈕是這樣的:

<input type="submit" class="@(ViewBag.IsThisBlue ? "blue-button" : "red-button")" value="Click Me"> 

編輯:我只是意識到你其實保存分貝的顏色。既然你不能直接把它傳遞給css,你可以在輸入本身上使用style屬性,就像我使用上面的class屬性一樣。