ASP.Net MVC 4捆绑包

Mat*_*wdy 9 asp.net-mvc jquery

我见过的很多代码都参考了这个:

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}
Run Code Online (Sandbox Code Playgroud)

这很棒,而且它有效...如果包含"某事".我是否必须添加引用才能获得这些内容?使用NuGet?复制DLL?这是从哪里来的?

当我运行我的项目时,我获得了该资源的404.

Mar*_*age 11

您需要创建捆绑包.这通常在App_Start\BundleConfig.csASP.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 ...
}
Run Code Online (Sandbox Code Playgroud)

javascript源文件应存在于该Scripts文件夹中.上面链接的教程解释了如何在发布版本中捆绑缩小版本等.


Pro*_*ega 9

仅供参考 - 我已经看过很多在MVC中使用Bundles的例子,但是大多数人忽略了这个程序集在System.Web.Optimization.dll中你可以通过添加Microsoft ASP.NET Web Optimization Framework包从NuGet获得这个.


Isw*_*San 7

是的,您必须在应用程序中注册捆绑包.

Global.asax.cs:

      protected void Application_Start() {

        AreaRegistration.RegisterAllAreas();

            // Register the bundles
            BundleConfig.RegisterBundles(BundleTable.Bundles);
      }
Run Code Online (Sandbox Code Playgroud)

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"
                       ));               
        }
Run Code Online (Sandbox Code Playgroud)

因此,当您将此代码放在视图中时:

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}
Run Code Online (Sandbox Code Playgroud)

它将呈现4个javascript文件.

更多:捆绑和缩小