【问题标题】:Add unobtrusive validation in asp.net on submit of page在页面提交时在 asp.net 中添加不显眼的验证
【发布时间】:2013-09-13 11:31:21
【问题描述】:

我正在尝试在 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>

感谢和问候

乔普拉王子

【问题讨论】:

  • @Tallmaris 你知道怎么解决这个问题吗?

标签: c# javascript jquery asp.net-mvc validation


【解决方案1】:

确保您的 web.config 文件的 &lt;appSetting&gt; 标记中有以下行

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

您还必须确保将表单发布回一个操作方法,该操作方法检查模型状态是否有效,如果不是,则返回视图。这样做将激活您的验证消息。

【讨论】:

  • 是的,它已经在 ` `
  • 我在我的答案中添加了一些额外的内容供您检查。
  • 我找到了解决方案。首先我需要从表单中删除所有验证,然后需要调用解析函数`var form = $("#kk"); form.removeData('验证器'); form.removeData('unobtrusiveValidation'); $.validator.unobtrusive.parse(form); `@BenM
猜你喜欢
  • 2012-09-28
  • 1970-01-01
  • 2011-08-11
  • 2012-04-16
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
  • 1970-01-01
  • 2011-09-17
相关资源
最近更新 更多