gpt4 book ai didi

c# - 为管理员用户角色呈现未 bundle 的 Assets

转载 作者:太空狗 更新时间:2023-10-29 21:27:35 24 4
gpt4 key购买 nike

我是否可以为“管理员”角色的用户呈现未 bundle 和未压缩的脚本和样式?

我已经搜索并找到了如何禁用 bundle

BundleTable.EnableOptimizations = ...

和缩小

foreach (Bundle bundle in bundles)
{
bundle.Transforms.Clear();
}

在 Global.asax.cs Application_Start 中,但我希望此逻辑针对每个用户,而不是每个应用程序实例,因此它不应仅在应用程序启动时运行。

最佳答案

首先,除非通过调用 Scripts.Render() 或 Styles.Render() 方法将其包含在 View 中,否则不会加载包含在 BundleConfig 中的样式或脚本。默认情况下,这些方法是从 _Layout.schtml 页面 (Views/Shared) 调用的。

@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")

为管理区域创建不同的布局页面并加载所需的脚本和样式将是更好的选择。

也可以使用相同的方法 Scripts.Render() 从任何 .cshtml 文件( View )加载它们。在这种情况下,它会像,

@{
if (User.IsInRole("Admin"))
{
//Update this portion with path of required bundles
@Scripts.Render("~/bundles/jquery")
}
else
{
//Update this portion with path of required bundles
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
}
}

以上代码段可以添加到_Layout 页面或任何其他页面。

如果要求是添加任何非 bundle 代码。只需使用脚本标签。看起来像这样:

@{
if (User.IsInRole("Admin"))
{
//required script or style files
}
else
{
//To include unbundled and unminified scripts
<script type="text/javascript" src="~/Scripts/jquery.validate.js"></script>
}
}

关于c# - 为管理员用户角色呈现未 bundle 的 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25070857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com