0

問題が解決しました

基本的に、インターネット テンプレートを使用して 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 は更新されないと思います。

4

3 に答える 3