MVC 5 JQuery包:麻烦的客户端验证

时间:2018-09-24 16:38:24

标签: jquery asp.net-mvc bundle

我试图理解为什么我的客户端验证遇到一些麻烦。如果我像这样捆绑:

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 个答案:

答案 0 :(得分:1)

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

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

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

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