我想验证我的表单,所以我正在查看 ASP.NET MVC4 示例应用程序。
在这里,我看到它使用以下内容:
jquery.unobtrusive-ajax.js
jquery.validate.js
jquery.validate.unobtrusive.js
有人可以解释一下。我需要所有这些 js 库吗?我以为我读到了一些地方,其中一个现在正在做另一个的工作,但我看到样本仍然加载了所有三个。
我想验证我的表单,所以我正在查看 ASP.NET MVC4 示例应用程序。
在这里,我看到它使用以下内容:
jquery.unobtrusive-ajax.js
jquery.validate.js
jquery.validate.unobtrusive.js
有人可以解释一下。我需要所有这些 js 库吗?我以为我读到了一些地方,其中一个现在正在做另一个的工作,但我看到样本仍然加载了所有三个。
有人可以解释一下。我需要所有这些 js 库吗?
不,绝对不是。
对于 jquery 不显眼的验证,您需要按特定顺序添加以下 3 个脚本:
jquery.js
jquery.validate.js
jquery.validate.unobtrusive.js
该jquery.unobtrusive-ajax.js
脚本与验证完全无关。这被所有Ajax.*
助手(例如Ajax.BeginForm
和Ajax.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 中),所有这些脚本都将被缩小、压缩并捆绑到通过动态端点提供服务的单个脚本中。