0

我想验证我的表单,所以我正在查看 ASP.NET MVC4 示例应用程序。

在这里,我看到它使用以下内容:

jquery.unobtrusive-ajax.js
jquery.validate.js
jquery.validate.unobtrusive.js

有人可以解释一下。我需要所有这些 js 库吗?我以为我读到了一些地方,其中一个现在正在做另一个的工作,但我看到样本仍然加载了所有三个。

4

1 回答 1

4

有人可以解释一下。我需要所有这些 js 库吗?

不,绝对不是。

对于 jquery 不显眼的验证,您需要按特定顺序添加以下 3 个脚本:

  1. jquery.js
  2. jquery.validate.js
  3. jquery.validate.unobtrusive.js

jquery.unobtrusive-ajax.js脚本与验证完全无关。这被所有Ajax.*助手(例如Ajax.BeginFormAjax.ActionLink)使用。

现在,这就是说,ASP.NET MVC 4 使用脚本包。例如,当您在 Visual Studio 中使用 Internet 模板创建新的 ASP.NET MVC 4 应用程序时,它将~/App_Start/BundleConfig.cs为您创建包含以下注册的文件:

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

这意味着如果在您调用的布局或视图中,开箱即用:

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

你将进入调试模式:

<script src="/Scripts/jquery-1.7.1.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>

在发布模式下(<compilation debug="false">在您的 web.config 中),所有这些脚本都将被缩小、压缩并捆绑到通过动态端点提供服务的单个脚本中。

于 2012-12-30T13:39:37.400 回答