asp.net-mvc - 如何在验证摘要中显示 MVC 3 客户端验证结果

标签 asp.net-mvc asp.net-mvc-3 asp.net-mvc-2-validation validationsummary

我有一个注册表单,我在上面使用客户端验证(在我的 View 模型上指定的必需、StringLength 等)。表单目前几乎是脚手架创建它的方式:

@using (Html.BeginForm("Index", "Registration"))
{
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Registration details</legend>
        @Html.ValidationSummary(false, "Please correct these errors:")
        @Html.ValidationMessageFor(model => model.Username)
        <div class="editor-label">
            @Html.LabelFor(model => model.Username)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Username)
        </div>
        <p>
            <input type="submit" value="Register" />
        </p>
    </fieldset>
}
唯一的区别是我将 ValidationMessageFor 移到了 ValidationSummary 下方的右上角。
我想做的是在验证摘要中显示客户端验证错误。目前,它们仅显示在表单顶部,但不使用验证摘要。如何使用验证摘要显示客户端验证错误?这甚至可能吗?
更新
Darin 我在一个新项目中使用了你的代码,这就是客户端验证开始时的样子:
Client side validation http://tinypic.com/images/404.gif
我希望这会显示在验证摘要中,并应用验证摘要样式。我还提交了表格,然后看起来像这样:
After submit

谢谢,
b3n

最佳答案

这篇文章似乎解释了如何将客户端验证摘要添加到验证摘要中:

http://geekswithblogs.net/stun/archive/2011/01/28/aspnet-mvc-3-client-side-validation-summary-with-jquery-validation-unobtrusive-javascript.aspx

但是我没有亲自测试它,它似乎与您的代码没有任何区别。如果它不起作用,最好查看一个实际放置验证错误的函数上的 jquery.validate.unobtrusive.js 文件:

function onErrors(form, validator) {  // 'this' is the form element
    var container = $(this).find("[data-valmsg-summary=true]"),
        list = container.find("ul");

    if (list && list.length && validator.errorList.length) {
        list.empty();
        container.addClass("validation-summary-errors")
          .removeClass("validation-summary-valid");

        $.each(validator.errorList, function () {
            $("<li />").html(this.message).appendTo(list);
        });
    }
}

关于asp.net-mvc - 如何在验证摘要中显示 MVC 3 客户端验证结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5150476/

相关文章:

asp.net-mvc - 使JSON.NET和Serializable属性协同工作

asp.net-mvc - MVC BaseController 和 BaseModel 确保值对所有 View 可用

c# - 如何在来自 View 的 View 值中显示标签

ASP.NET MVC : DropDownList validation

asp.net-mvc - 从global.asax中的Application_BeginRequest重定向到操作

c# - 基于其他领域的验证?

javascript - 什么是众所周知的 JavaScript MVC 模式?

asp.net-mvc - 使用成员资格提供程序的用户和角色列表

jquery - 如何在razor html或mvc3中的onchange fn上传递下拉菜单的id

jquery - MVC 3 和 ajax 调用 - 无法阻止它缓存