动态加载bundle在运行时MVC5剃刀视图

时间:2014-12-25 18:19:05

标签: asp.net-mvc razor asp.net-mvc-5 bundle

如果登录用户是admin,我想在刚刚加载的包中添加一些js。 像这样:

@if (@ViewBag.IsAdmin)
{
    @section Scripts {
        @Scripts.Render("~/bundles/admin")
    }
}

如果他是管理员,我希望“脚本”部分将被填写。但是,在客户端,我无法在“〜/ bundles / admin”包中看到js。

我更改了代码而没有使用@section:

@if (@ViewBag.IsAdmin)
{
    @Scripts.Render("~/bundles/admin")
}

但同样的问题。看起来捆绑包无法在运行时动态加载。

我能通过它的唯一方法:

@if (@ViewBag.IsAdmin)
{
    <script src="~/Scripts/admin.js"></script>
}

这意味着直接加载js而不是将其放入bundle中。 所以我的问题是:无论如何我可以动态加载一个包吗?

1 个答案:

答案 0 :(得分:0)

我这样做,对我有用:

@section Styles {
    @Styles.Render("~/bundles/dataTablesStyles")
    @if (Model.isReportAdmin){@Styles.Render("~/bundles/X-editablecss")}
}
@section Scripts {
    @Scripts.Render("~/bundles/highcharts")
    @Scripts.Render("~/bundles/dataTablesScripts")
    @if (Model.isReportAdmin){@Scripts.Render("~/bundles/X-editablejs")}
}