MVC 5 JQuery 包:客户端验证有问题

MVC 5 JQuery bundles : client-side validation in trouble

我想了解为什么我的客户端验证遇到了几个问题。如果我像那样捆绑:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery.validate-vsdoc.js",
"~/Scripts/jquery.validate.js",
"~/Scripts/jquery.validate.min.js",
"~/Scripts/jquery.validate.unobstrusive.js",
"~/Scripts/jquery.validate.unobstrusive.min.js",
"~/Scripts/jquery.unobtrusive-ajax.min.js"));

客户端验证无效。

如果我这样捆绑:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery.validate*",
"~/Scripts/jquery.unobtrusive-ajax.min.js"));

一切都很好。 如果我删除第一个配置中的任何文件,它就不起作用。

你有解释吗?

听起来您尝试执行的验证需要所有库;

  1. jQuery 作为基础库是必需的,并且您所有的验证库都具有这种依赖性
  2. jQuery.validation是一个jQuery插件,通过HTML属性指定验证
  3. jQuery.unobtrusive-ajax不是用来验证的,而是一个通过HTML属性指定ajax配置的插件。

虽然不太可能需要 unobtrusive-ajax 进行验证;在您的情况下,您可能正在实施一些利用此插件公开的功能的自定义验证。

另一个可能对此处有影响的主题是 MVC 处理 Bundling and Minification 的方式,其中如果 debug 设置为 true min.js 文件将从包中删除。