两个动作过滤器属性之间的冲突

时间:2015-09-16 12:35:28

标签: javascript html asp.net minify bundling-and-minification

我已经为HTML缩小实现了两个动作过滤器,另一个用于将脚本移动到页面末尾。

对于HTML缩小我使用NuGet包WebMarkupMin并将内联脚本移动到我的页面底部我正在使用NuGet包BundleMinifyInlineJsCss。

要实现BundleMinifyInlineJsCss,我已遵循此link

我已经从Global.asax.cs文件全局声明了这两个过滤器,如下面的顺序:

GlobalFilters.Filters.Add(new MinifyHtmlAttribute());
GlobalFilters.Filters.Add(new ReplaceTagsAttribute());

对于ReplaceTagsAttribute我使用OnActionExecuting方法,如下所示:

 public override void OnActionExecuting(ActionExecutingContext filterContext){
    var response = filterContext.HttpContext.Response;
    if (response.Filter == null) return; // <-----
        response.Filter = new BundleAndMinifyResponseFilter(response.Filter);
 }

但是,如果我同时使用这两个过滤器,它会生成缩小代码twise。因此,我在Firebug中面临这样的问题:

  

History.js适配器已加载“

请注意,如果我添加过滤器 - GlobalFilters.Filters.Add(new ReplaceTagsAttribute());,则只会发生问题。

我该如何解决这个问题? 任何帮助表示赞赏。

0 个答案:

没有答案