問題が解決しました
基本的に、インターネット テンプレートを使用して ASP.NET MVC4 プロジェクトを開始することに慣れています。今回はBasicテンプレートでやってみました。ここで、jQuery 検証を手動で追加しようとしています。NuGet パッケージ jQuery.validation をインストールし、bundleconfig および _layout ファイルに含めました。
これが私のbundleconfigです:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
そして、これを_layoutに含める方法は次のとおりです。
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
リクエストごとに読み込まれる js ファイルは次のとおりです。
http://localhost:10815/Scripts/jquery-2.0.3.js
http://localhost:10815/Scripts/jquery.unobtrusive-ajax.js
http://localhost:10815/Scripts/jquery.validate.js
http://localhost:10815/Scripts/jquery.validate.unobtrusive.js
私のコントローラーでは、ModelState.IsValid かどうかを確認し、そうでない場合はモデルでビューを返します。メソッドをデバッグして、モデル状態にエラーがあることを確認しました。
そして最後に、ビューファイルに以下を含めました:
@Html.ValidationSummary()
次の HTML 出力が生成されます。
<div class="validation-summary-valid" data-valmsg-summary="true"><ul><li style="display:none"></li>
</ul></div>
私の問題は、コントローラーがビューを返したときに検証の概要が変更されないという事実です-何が問題なのかわかりません-何が欠けていますか?
問題は解決しました - 私は今オフにした ajax を使用しました - ajax なしで正常に動作します。validationsummary がリロードされないため、html は更新されないと思います。