0

我正在尝试在 asp.net mvc 中添加验证。在页面加载时,我只有一个文本框可以完美地进行验证。但我想在运行时添加另一个文本框,这也是我数据库中的必填字段。

但我无法做到这一点。文本框的 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 回答