我是否可以为“管理员”角色的用户呈现未 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/