2017-11-29 10 views
1

MVCバンドルがクエリ文字列値に基づいて行われるシナリオを思いつきました。クエリストリングに基づいたMvcバンドリング

フォルダ内のすべての* .jsにバンドルバンドルを使用しています。私のクエリ文字列は、そのフォルダ内のjsファイルのみをバンドルする必要があるその名前に基づいてサブフォルダ名を持ちます。そのため、実行時に任意のフォルダを追加してURLに指定しても、アプリケーションはそのフォルダ内でjsファイルをロードできるはずです。基本的には何を探しています何

をbundle.configでクエリ文字列を読んで、バンドルのフォルダ名を動的にするために探していますと、すべての助けを事前に

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

おかげです。

答えて

1

あなたは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で

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)); 
      } 
     } 
    } 
} 

かなり多くのコードを変更する必要がために、私の検索数時間は、私が探していた何かを得た後、私のために仕事をした。ありがとうございます

関連する問題