MVC model的验证错误以弹出框的方式显示

1、前台

eg

@using (Html.BeginForm("Register", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)

<span>
<i class="per"></i>
@Html.TextBoxFor(m => m.FamilyName, new { @id = "user-lastName", maxlength = "25", @class = "z-w289 J-fname", @placeholder = "姓" })
</span>
<span style="margin-left: 3px;">
<i class="per"></i>
@Html.TextBoxFor(m => m.FirstName, new { @id = "user-lastName", maxlength = "25", @class = "z-w289 J-sname", @placeholder = "名" })

</span>

}

2、Js

$(function () {
$(".validation-summary-errors").hide();

var timer = setTimeout("showMessage()", 600);
});

function showMessage() {
var text = $.trim($(".validation-summary-errors").text());
if (text != "") {
alert(text);
return;
}

}

3、后台

try
{

if (ModelState.IsValid)
{

。。。

}

var errorMessage = string.Empty;
if (ModelState != null && ModelState.Count > 0)
{
foreach (var item in ModelState)
{
if (!string.IsNullOrEmpty(errorMessage))
{
break;
}

if (item.Value.Errors.Count > 0 && item.Value.Errors.FirstOrDefault() != null && !string.IsNullOrEmpty(item.Value.Errors.FirstOrDefault().ErrorMessage))
{
errorMessage = item.Value.Errors.FirstOrDefault().ErrorMessage;
ModelState.AddModelError("", errorMessage);
break;
}
}
}

 

posted @ 2017-04-19 11:09  Amity1006  阅读(953)  评论(0编辑  收藏  举报