为管理员用户角色呈现非捆绑资产

tuf*_*uff 6 c# asp.net asp.net-mvc bundle bundling-and-minification

我是否有可能以"管理员"角色为用户呈现非捆绑和未分类的脚本和样式?

我搜索并找到了如何禁用捆绑

BundleTable.EnableOptimizations = ...
Run Code Online (Sandbox Code Playgroud)

和缩小

foreach (Bundle bundle in bundles)
{
    bundle.Transforms.Clear();
}
Run Code Online (Sandbox Code Playgroud)

在Global.asax.cs中Application_Start,但我希望这个逻辑是每个用户,而不是每个应用程序实例,所以它不应该只在应用程序启动时运行.

tuf*_*uff 3

我对 emodendroket 建议的实施,目前对我来说效果很好:

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new DisableBundlingForAdminFilter());
        // other filters
    }

    private class DisableBundlingForAdminFilter : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            #if !DEBUG
            BundleTable.EnableOptimizations = !filterContext.HttpContext.User.IsInRole("Admin");
            #endif
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

FilterConfig.RegisterGlobalFilters被称为Application_Start.