9

私が見た多くのコードはこれを参照しています:

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

これは素晴らしいことです。「何か」が含まれていれば機能します。これらを取得するには、参照を追加する必要がありますか? NuGet を使用しますか? DLL をコピーしますか? これはどこから来たのですか?

プロジェクトを実行すると、そのリソースに対して 404 が返されます。

4

5 に答える 5

11

バンドルを作成する必要があります。これは多くの場合App_Start\BundleConfig.cs、ASP.NET MVC 4 プロジェクトのファイルで行われます。それはすべてバンドルと縮小で説明されています。

クラスでは、次のBundleConfigようなものが必要です (このメソッドは で実行する必要がありますApplication_Start)。

public static void RegisterBundles(BundleCollection bundles) {
  bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
              "~/Scripts/jquery-{version}.js"));

  bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
              "~/Scripts/jquery.unobtrusive*",
              "~/Scripts/jquery.validate*"));

  // ... more registrations ...
}

JavaScript ソース ファイルは、Scriptsフォルダーに存在する必要があります。上記のリンク先のチュートリアルでは、縮小版がリリース ビルドなどにどのようにバンドルされているかを説明しています。

于 2013-02-19T02:41:48.170 に答える
9

参考までに - MVC でバンドルを使用する例を数多く見てきましたが、ほとんどの場合、このアセンブリは System.Web.Optimization.dll にあり、 Microsoft ASP.NET Web 最適化フレームワークパッケージを追加することで NuGet から取得できます。 .

于 2013-10-29T16:21:23.063 に答える
7

はい、アプリケーションにバンドルを登録する必要があります。

Global.asax.cs:

      protected void Application_Start() {

        AreaRegistration.RegisterAllAreas();

            // Register the bundles
            BundleConfig.RegisterBundles(BundleTable.Bundles);
      }

BundleConfig.cs:

     public class BundleConfig
     {
        // For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~bundles/jqueryval").Include(
                        "~/Scripts/jquery.unobtrusive*",
                        "~/Scripts/jquery.validate*",
                        "~/Scripts/jquery.livequery.js",
                        "~/Scripts/jquery.numeric.js"
                       ));               
        }

したがって、このコードをビューに配置すると、次のようになります。

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

4つのJavaScriptファイルをレンダリングします。

詳細:バンドルとミニファイ

于 2013-02-19T02:43:37.663 に答える
0

プロジェクトApp_Start/BundleConfig.csには、すべてのバンドルの宣言があります。このことを考慮:

    bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
        "~/Scripts/jquery.unobtrusive*",
        "~/Scripts/jquery.validate*"));

この場合、「~/bundles/jqueryval」を参照すると、リストされた 2 つのスクリプトが含まれ、ボーナスとして、それらが縮小されます (プロジェクトを「リリース」モードで実行する場合)。

詳しくはこちらをご覧ください。

于 2013-02-19T02:43:10.803 に答える