【问题标题】:ASP.NET web forms change bootstrap theme dynamiclyASP.NET Web 表单动态更改引导主题
【发布时间】:2015-11-06 08:31:48
【问题描述】:

我的主要问题是我想用一个主题下拉列表和一个按钮来更改我网站的引导主题。

@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 循环只是为了显示不同的路径。

我还有一个带有主题表的数据库:

现在的问题是,我该如何更改引导程序?

我知道有这个代码可以改变主题。

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

但应该在_layout.cshtml文件中为整个网站设置。

后台正在使用服务,但这在这里并不重要。

网站截图:

【问题讨论】:

    标签: css asp.net asp.net-mvc bootstrapping


    【解决方案1】:

    您可以编写一个操作,根据用户设置返回要使用的 css 文件的路径。

    类似的东西

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

    由于您无权访问布局页面中的 ViewModel,因此控制器必须使用另一种机制来确定为哪个用户调用了该操作。例如,我们将带有所需数据的用户上下文对象存储在HttpContext.Current.Session 中。这可以在登录时写入一次。然后 UserCssPath 操作可以访问数据库以找到正确的 CSS 路径并返回它:return Content(cssPath);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 2023-03-02
      • 1970-01-01
      • 1970-01-01
      • 2012-09-08
      • 2014-07-29
      相关资源
      最近更新 更多