未呈现MVC 4中的自定义包
我正在研究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
我有这样的: 公共静态无效RegisterBundles(BundleCollection包)
{
//默认包
bundles.Add(新的ScriptBundle(“〜/ bundles / customval”)。Include(
"~/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
但它似乎并没有解决一些问题。 那么,我错过了什么让我的捆绑工作?
您可能正在DEBUG
模式下运行。 在这种模式下.min.js
文件被忽略(因为它们只用于生产使用)。
最好是包含非缩小(有时后缀为.debug.js
)版本,然后在RELEASE
模式下,Optimization Framework将自动捆绑并为您缩小(除非另有指定)。
我不得不补充:
BundleTable.EnableOptimizations = false;
在RegisterBundles方法的末尾。 在我年事已高的时候:)我不记得具体到底是什么问题,但是如果内存为我提供了正确的答案,那么它必须处理.min文件并进行调试。
@RenderSection(“scripts”,required:false)允许您在每个视图中定义一个特殊的脚本部分(在您的情况下是可选的),并使其在每个使用_layout文件的页面中的相同位置呈现。
链接地址: http://www.djcxy.com/p/67979.html上一篇: Custom bundle in MVC 4 is not rendered
下一篇: How to force BundleCollection to flush cached script bundles in MVC4