【问题标题】:How to use alert message for Validation errors using Html.Validate如何使用 Html.Validate 对验证错误使用警报消息
【发布时间】:2013-08-20 20:37:11
【问题描述】:

如何使用 Html Validate 或 Html ValidateFor 显示错误警报

<script type="text/javascript">
    $(document).ready(function () {
        $("#RegisterForm").bind('invalid-form.validate',
    function (event, validator) {
    alert(validator.errorMap.FName);
    console.log(validator.errorMap);
    });
    });
</script>


@using(Html.BeginForm()){
    <span>First Name: </span>@Html.TextBoxFor(model => model.FName)
    @{Html.ValidateFor(model => model.FName);}
}

【问题讨论】:

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 razor


【解决方案1】:

您可以尝试像这样扩展验证摘要:

public static class ValidationSummaryAlert
{
    public static string ValidationSummaryWithAlert(this HtmlHelper ext)
    {
        if (!ext.ViewData.ModelState.IsValid)
        {
            var alertMessage = (from item in ext.ViewData.ModelState
                                where item.Value.Errors.Any()
                                  && item.Key.Equals("Popup")
                                select new { Message = item.Value.Errors[0].ErrorMessage, item.Key }).SingleOrDefault();

            return
                string.Format(
                    "<script language=\"javascript\" type=\"text/javascript\">$(function() {{alert('{0}')}});</script>",
                    alertMessage);
        }

        return string.Empty;
    }
}

然后在视图中:

@using(Html.BeginForm()){
    @Html.Raw(Html.ValidationSummaryWithAlert())

    <!-- YOUR CODE -->
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    • 2020-03-12
    相关资源
    最近更新 更多