为什么jqueryval包渲染是空的?

本文关键字:jqueryval 包渲染 为什么 | 更新日期: 2023-09-27 17:53:50

我正在尝试渲染一个脚本包,但它是空的。

下面是BundleConfig.cs

中的脚本包声明
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                  "~/Scripts/modernizr-*"));
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                  "~/Scripts/bootstrap.js",
                  "~/Scripts/respond.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                  "~/jquery.unobtrusive.ajax*",
                  "~/jquery.validate.unobtrusive.bootstrap*"));

在我看来

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jqueryval")

但是当我加载页面时,jqueryval脚本显示为空。

<script src="/bundles/jquery?v=Nsx6sB8o7LJCR51P5u-dfe-6LePnt87pD0P5VTJ-0wI1"></script>
<script src="/bundles/bootstrap?v=XkxfR798CUJPhMhSd0B8VYgZWSNOTtLvz6047jf84wQ1"></script>
<script src="/bundles/modernizr?v=K-FFpFNtIXPUlQamnX3qHX_A5r7TM2xbAgcuEmpm3O41"></script>
<script src="/bundles/jqueryval?v="></script>

Firefox中的调试器说在检索bundle的文件时返回200状态,但文件大小为0。

为什么jqueryval包渲染是空的?

很可能您的路径不正确。:

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                  "~/jquery.unobtrusive.ajax*",
                  "~/jquery.validate.unobtrusive.bootstrap*"));
应该

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                  "~/scripts/jquery.unobtrusive.ajax*",
                  "~/scripts/jquery.validate.unobtrusive.bootstrap*"));

请记住,当路径被解析时,~/映射到站点的虚拟根目录,所以除非您将JavaScript文件放在站点根目录中,否则包中的这些路径将不起作用。