2015-11-06 36 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);