0

asp.net mvc に検証を追加しようとしています。ページの読み込み時に、その検証が完全に機能するためのテキスト ボックスが 1 つしかありません。しかし、データベースの必須フィールドでもある別のテキストボックスを実行時に追加したいと考えています。

しかし、私はこれを達成することができません。テキスト ボックスの HTML は同じですが、実行時に生成されたテキスト ボックスに必要な検証が表示されません。

私はこのようなコードを使用しています

EmployeeVM としてモデルを作成しました

public class EmployeeVM
{
    [Required]
    public string name { get; set; }

    [Required]
    public string age { get; set; }
}

私のビューコードは次のようなものです:

@using (Html.BeginForm("About", "Home", FormMethod.Post, new { id = "kk" }))
{
<table>
    <tr>
        <td>
            name
        </td>
        <td>
            @Html.TextBoxFor(p => p.name)
            @Html.ValidationMessageFor(p => p.name)
        </td>
    </tr>
    <tr id="dd"></tr>
    <tr>
        <td>
            <input type="submit" value="Save" />
        </td>
    </tr>
</table>
}
<input type="button" onclick="app()" value="add" />

そして、私のJavaScriptコードは次のとおりです。

@section scripts{
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>

<script type="text/javascript">
    function app() {
        $.removeData($("#kk"), 'validator');
        var tr = '<td>age:</td><td> @Html.TextBoxFor(p => p.age)@Html.ValidationMessageFor(p => p.age) </td>';
        $("#dd").html(tr);

        $.validator.unobtrusive.parse(document);
    }
</script>

感謝と敬意

チョプラ王子

4

1 に答える 1

0

<appSetting>web.config ファイルのタグに次の行があることを確認してください

<add key="UnobtrusiveJavaScriptEnabled" value="true"/>

また、モデル状態が有効かどうかを確認するアクション メソッドにフォームをポストし、そうでない場合はビューに戻ることを確認する必要があります。これを行うと、検証メッセージが有効になります。

于 2013-09-13T12:05:08.293 に答える