我有一个注册表,我使用客户端验证(必需,在我的视图模型上指定的StringLength等).该表格现在几乎是scaffolder创建它:
@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://i56.tinypic.com/i3f320.jpg
After submit http://i55.tinypic.com/2hqcowh.jpg
谢谢,
B3N
解决方法
本文似乎解释了如何添加客户端验证汇总到验证总结中:
但是我没有自己测试,并且与您的代码似乎没有任何区别.如果它不起作用,可能会将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); }); } }