0

多くの投稿を読みましたが、問題を解決できません。

クリック時に追加ボタンがあるビューがあります。部分ビューを表示しています。その部分ビューにはレコードを追加するためのフォームがあり、クライアント側を検証していません。私はjquery検証を使用しており、部分ビューが開いているメインビューにjsファイルを追加しました。

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>

私の見解:

 <div id="Div1">
   <a id="lnkAdd">
      <div>Add</div>
   </a>
 </div>

$("#lnkAdd").click(function () {
       $.ajax({
            url:  '@Url.Action("MethodName", "ControllerName")',
       type: "POST",
            error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.status);
                alert(thrownError);
            }
    }).done(function () {
    }).success(function (dv) {
        $("#Div1").html(dv);
    })
    });

コントローラ:

[Authorize]
    public PartialViewResult MethodName()
    {
        return PartialView("_PartialViewName");
    }

部分図:

<div id="UsersDiv">

<div class="grid-background" style="border: 1px solid #8dc2f5;">

    @using (Html.BeginForm("AddRecord", "ControllerName"))
    {
      <div class="form-bg" style="border: 0px; margin-top: 0px; width: 966px;">
     <div class="form-field-bg">
      @Html.LabelFor(m => m.FirstName)
      @Html.TextBoxFor(m => m.FirstName, new { @class = "label-class" })
      @Html.ValidationMessageFor(m => m.FirstName, "", new { @class = "validation-class" })
    </div>

  <input type="submit" value="Save" id="btnSaveUsers" name="AddRecord" class="signup-button" />
     }

4

4 に答える 4

2

バリデーターは、document.ready イベントがトリガーされたときにのみ接続されます。動的コンテンツの場合は、手動でトリガーする必要があります。

成功ハンドラーを次のように変更します。

.success(function (dv) {
    $("#Div1").html(dv);

    $("form").data("validator", null);
    $.validator.unobtrusive.parse($("form"));
})
于 2013-06-20T08:17:27.310 に答える
0

部分的なレンダリング後に以下のコードを追加して修正しました

@Scripts.Render("~/bundles/jqueryval")
于 2015-08-03T20:13:28.590 に答える