ScriptBundle 一般用法
C#的代码如下:
bundles.Add(new ScriptBundle("~/bundles/jqueryval") .
Include("~/Scripts/modernizr-*", "~/Scripts/json2.js", "~/Scripts/columnizer.js", "~/Scripts/jquery.ui.message.min.js", "~/Scripts/Shared/achievements.js", "~/Scripts/Shared/canvas.js")
);
此时
在cshtml上,使用@RenaderScript时,他是按照脚本文件的字母顺序生成的。 但是有时候我们是不能按照这个顺序加载的。
这是我们需要派生IBundleOrderer按照自己的顺序进行生成。
代码如下:
public class AsIsBundleOrderer : IBundleOrderer
{
public virtual IEnumerable<BundleFile> OrderFiles(BundleContext context, IEnumerable<BundleFile> files)
{
return files;
}
}
然后按照下面的代码修改
public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { var bundle = new Bundle("~/bundles/scripts/canvas"); bundle.Orderer = new AsIsBundleOrderer(); bundle.Include("~/Scripts/modernizr-*", "~/Scripts/json2.js", "~/Scripts/columnizer.js", "~/Scripts/jquery.ui.message.min.js", "~/Scripts/Shared/achievements.js", "~/Scripts/Shared/canvas.js"); bundles.Add(bundle); } }
此时看看生成的页面,是不是脚本的引入顺序的变化?脚本能正确执行了!