フォームの検証を行いたいので、ASP.NETMVC4サンプルアプリケーションを調べています。
ここでは、次のものを使用していることがわかります。
jquery.unobtrusive-ajax.js
jquery.validate.js
jquery.validate.unobtrusive.js
誰かが説明できますか?これらのjsライブラリをすべて必要としますか?一方がもう一方の仕事をしている場所を読んだと思いましたが、サンプルにはまだ3つすべてがロードされています。
フォームの検証を行いたいので、ASP.NETMVC4サンプルアプリケーションを調べています。
ここでは、次のものを使用していることがわかります。
jquery.unobtrusive-ajax.js
jquery.validate.js
jquery.validate.unobtrusive.js
誰かが説明できますか?これらのjsライブラリをすべて必要としますか?一方がもう一方の仕事をしている場所を読んだと思いましたが、サンプルにはまだ3つすべてがロードされています。
誰かが説明できますか?これらのjsライブラリをすべて必要としますか?
いいえ、絶対にありません。
jqueryの控えめな検証では、次の3つのスクリプトを特定の順序で追加する必要があります。
jquery.js
jquery.validate.js
jquery.validate.unobtrusive.js
スクリプトはjquery.unobtrusive-ajax.js
検証とはまったく関係ありません。これは、すべてのAjax.*
ヘルパー(Ajax.BeginForm
およびなどAjax.ActionLink
)によって使用されます。
さて、これは言われていますが、ASP.NETMVC4はスクリプトバンドルを使用しています。たとえば、VisualStudioでインターネットテンプレートを使用して新しいASP.NETMVC 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内)では、これらのスクリプトはすべて縮小され、圧縮され、動的エンドポイントを介して提供される単一のスクリプトにバンドルされます。