2017-11-29 25 views
1

MVC 번들링이 쿼리 문자열 값을 기반으로 수행되어야하는 시나리오가 나타났습니다.Qerystring을 기반으로하는 Mvc 번들

폴더 내의 모든 * .js에 번들링 폴더를 사용하고 있습니다. 내 쿼리 문자열은 해당 폴더 안에 js 파일 만 번들링해야하는 해당 이름을 기반으로하는 하위 폴더 이름을 갖습니다. 따라서 런타임에 폴더를 추가하고이를 URL에 제공하더라도 응용 프로그램은 폴더 안에 js 파일을로드 할 수 있어야합니다. bundle.config에서 쿼리 문자열을 읽고 무엇을 찾고

동적 번들의 폴더 이름을 실시하기 위해서 기본적으로 무엇을 찾고 모든 도움에 미리

bundles.Add(new ScriptBundle("~/bundles/folderbundle") 
    .IncludeDirectory("~/JS/"+ [FoldernamefromQueryString] +", "*.js", true) 
); 

감사합니다. 내가 Global.asax에

public class MvcApplication : System.Web.HttpApplication 
    { 
     protected void Application_Start() 
     { 
      AreaRegistration.RegisterAllAreas(); 
      FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
      RouteConfig.RegisterRoutes(RouteTable.Routes); 
      //BundleConfig.RegisterBundles(BundleTable.Bundles); 
      BundleTable.EnableOptimizations = true; 
     } 

     protected void Application_AcquireRequestState(object sender, EventArgs e) 
     { 
      var handler = Context.Handler as MvcHandler; 
      if (handler != null) 
      { 
       var routeData = handler.RequestContext.RouteData; 
       var moduleName = !string.IsNullOrWhiteSpace(HttpContext.Current.Request.QueryString["ModuleName"]) ? HttpContext.Current.Request.QueryString["ModuleName"] : "Module"; 
       BundleConfig.RegisterBundles(BundleTable.Bundles, moduleName); 
      } 
     } 
    } 

에와 bundle.config의 코드를 변경하는 당신을 위해 한 찾고 있었다 뭔가있어 검색의 몇 시간 후

답변

1

namespace RouteBundling 
{ 
    public class BundleConfig 
    { 
     // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862 
     public static void RegisterBundles(BundleCollection bundles, string moduleName = "") 
     { 
      if (moduleName == "Module") 
      { 
       bundles.Add(new ScriptBundle("~/bundles/module").IncludeDirectory("~/Scripts/Module/", "*.js", true)); 
      } 
      else 
      { 
       bundles.Add(new ScriptBundle("~/bundles/module").IncludeDirectory("~/Scripts/Module/" + moduleName + "/", "*.js", true)); 
      } 
     } 
    } 
} 

그건 꽤 많이 나를 위해 일을 끝냈다. 감사합니다.