MVC 4中的自定义包未呈现

时间:2013-12-05 10:27:35

标签: .net asp.net-mvc-4 bundle

我正在处理ASP.NET MVC 4申请。我想创建自己的包含.js文件的包,我将用于验证,但由于某种原因,它不起作用。只是要提一下 - 如果我在给定视图中渲染我的所有脚本,一切都工作得很好,如:

@Scripts.Render("~/Scripts/jquery-1.7.1.min.js")
@Scriptes.Render("~/Scripts/jquery.validate.min.js")
//..few more files

但我不希望每次都包含所有这些脚本,所以我决定自己创建一个包。我做的步骤是:

  • BundleConfig.cs我有这个:
  

public static void RegisterBundles(BundleCollection bundle)

     

{

     

//默认捆绑

     

bundles.Add(new ScriptBundle(“〜/ bundles / customval”)。包括(

    "~/Scripts/jquery-1.7.1.min.js",
    "~/Scripts/jquery.validate.min.js",
    "~/Scripts/jquery.unobtrusive-ajax.min.js",
    "~/Scripts/jquery.validate.unobtrusive.min.js"));
  

}

然后我检查我的Global.asax我在哪里:

  

BundleConfig.RegisterBundles(BundleTable.Bundles);

然后在我看来我只是尝试:

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

FireBug表示此页面没有加载JavaScript。

我使用自定义_Layout页面,我想知道是否必须在那里添加内容。我补充说:

@RenderSection("scripts", required: false)

在我的_Layout中,但它似乎没有解决问题。那么我错过了什么让我的捆绑工作?

2 个答案:

答案 0 :(得分:4)

您可能正在以DEBUG模式运行。在此模式下,.min.js文件将被忽略(因为它们仅供生产使用)。

最好包含非缩小版(有时带有.debug.js个版本的后缀),然后在RELEASE模式下,优化框架会自动捆绑和缩小它(除非您另行指定)

答案 1 :(得分:1)

我不得不补充:

BundleTable.EnableOptimizations = false;

在RegisterBundles方法的末尾。在我的晚年:)我不记得究竟是什么问题,但它与.min文件和调试,如果内存为我服务。

@RenderSection(“scripts”,required:false)允许您在每个视图中定义一个特殊的脚本部分(在您的情况下是可选的),并在每个使用_layout的页面中将它呈现在相同的位置文件。