在asp.net mvc 4中组织自定义javascripts

Sam*_*Sam 17 javascript bundle asp.net-mvc-4

我是mvc 4的新手,我想知道我应该把我的自定义javascript文件放在哪里."自定义"是指仅在特定视图或部分视图中使用的脚本.

我也使用区域,因此增加了复杂性.我正在考虑将我的脚本放在应用程序根目录下的Script文件夹中,然后放在Custom子文件夹中.

那么我如何在我的视图中引用脚本?我应该使用自定义捆绑包吗?

Yoa*_*oav 24

我认为将脚本添加到文件夹中的自定义文件scripts夹是可行的方法.您可以在appstart\BundleConfig.cs文件中创建一个新的包,如下所示:

bundles.Add(new ScriptBundle("~/bundles/custom").Include(
                   "~/Scripts/Custom/myCustom.js",
                   "~/Scripts/Custom/myCustom2.js"));
Run Code Online (Sandbox Code Playgroud)

而不是bundle像这样添加到您的视图:

@section scripts{

 @Scripts.Render("~/bundles/custom")

}
Run Code Online (Sandbox Code Playgroud)

这将@RenderSection("scripts", required: false)在您layout文件的行上呈现.

或者
只打电话script给你一个特定的view你可以做:

@section scripts{
<script src="~/Scripts/Custom/myCustom.js"></script>
}
Run Code Online (Sandbox Code Playgroud)

注意:您可以将脚本文件从solution explorer该部分拖到该部分中.你不必写整个路径.
编辑 - 似乎很重要,所以我从上次评论中复制了这个:
为了使用minification你需要将你的脚本添加到捆绑表中,然后添加BundleTable.EnableOptimizations = true;BundleConfig文件或设置<compilation debug="false"在你的web.config文件中.

  • 不确定我是否理解你的问题.在`scripts section`中定义的bundle将仅为调用它的视图呈现.也可以多次调用`(document).ready()`,见[this](http://docs.jquery.com/Tutorials:Multiple_$%28document%29.ready%28%29). (2认同)