2015-11-06 41 views
0

我的主要問題是我想用主題和按鈕的下拉列表更改我的網站的引導主題。ASP.NET web表單動態改變bootstrap主題

@model IEnumerable<ProjectManagementTool.ServiceReference1.Theme> 
@{ 
    ViewBag.Title = "Settings"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

<form action="/Home/Settings" method="get"> 

    <h2>Settings</h2> 
    <br /> 

    <h4>Change Theme</h4> 
    @Html.DropDownList("GetThemes", null, htmlAttributes: new { @class = "form-control" }) 
    <br /> 
    <p> 
     <input class="btn btn-default" type="submit" value="Save"/> 
    </p> 

@foreach (var item in Model) 
{ 
    @Html.DisplayFor(modelItem => item.Path) 
    <br/> 
} 


</form> 

foreach循環是隻是爲了顯示有多種不同的路徑。

我有一個主題表的數據庫藏漢: enter image description here

現在的問題是,我怎麼能更改引導?

我知道有這個代碼來改變主題。

@Styles.Render("~/Content/flatly.bootstrap.css") 

但它應該在_layout.cshtml文件中設置爲整個網站。

背景與服務一起工作,但在這裏並不重要。

截圖網站: enter image description here

回答

0

你可以編寫返回根據用戶的設置要使用的CSS文件的路徑的動作。

東西沿着

@Styles.Render(Html.Action("UserCssPath", "Settings").ToString()); 

行因爲你沒有在你的頁面佈局訪問視圖模型,控制器必須使用另一種機制來找出哪個用戶被調用的動作。例如,我們在HttpContext.Current.Session中存儲具有所需數據的用戶上下文對象。這可以在登錄時寫入一次。 UserCssPath操作可以訪問數據庫以查找正確的CSS路徑並將其返回:return Content(cssPath);