为什么jqueryval包渲染为空?

时间:2014-03-26 02:51:08

标签: c# razor asp.net-mvc-5 unobtrusive-validation

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

这是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中的调试器在检索包的文件时返回200状态,但filesize为0。

1 个答案:

答案 0 :(得分:4)

最有可能的是,您的路径不正确。这样:

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文件放在网站根目录中,否则捆绑中的这些路径不会工作