• MVC验证06-自定义错误信息


    本文体验自定义错误信息。

      系统默认的错误信息

    在"MVC验证02-自定义验证规则、邮件验证"中,我们自定义了一个验证Email的类。如果输入邮件格式错误,出现系统默认的报错信息。

    效果:
    邮件验证1             

     

      通过ErrorMessage来修改错误信息

    [Email(ErrorMessage = "Email格式错误")]
    [Display(Name = "邮件")]
    public string Email { get; set; }

    效果:
    自定义错误1

      在自定义验证特性中重写FormatErrorMessage方法

    using System.ComponentModel.DataAnnotations;
    using System.Text.RegularExpressions;
    using System.Web.Mvc;
     
    namespace MvcValidation.Extension
    {
        public sealed class EmailAttribute : ValidationAttribute, IClientValidatable
        {
            public const string reg = @"^[w-]+(.[w-]+)*@([w-]+.)+[a-zA-Z]+$";
     
            public EmailAttribute()
            {  
            }
     
            //重写基类方法
            public override bool IsValid(object value)
            {
                if (value == null)
                    return true;
     
                if (value is string)
                {
                    Regex regEx = new Regex(reg);
                    return regEx.IsMatch(value.ToString());
                }
                return false;
            }
     
            public System.Collections.Generic.IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
            {
                ModelClientValidationRule rule = new ModelClientValidationRule
                {
                    ValidationType = "email",
                    ErrorMessage = FormatErrorMessage(metadata.GetDisplayName())
                };
                yield return rule;
            }
     
            /// <summary>
            /// 格式化错误信息
            /// </summary>
            /// <param name="name">属性名</param>
            /// <returns></returns>
            public override string FormatErrorMessage(string name)
            {
                return  this.ErrorMessage ?? string.Format("{0}属性没有输入正确的Email", name);
            }
        }
    }
     

    效果:
    自定义错误2

  • 相关阅读:
    poj 1840 简单哈希
    poj 2151概率dp
    poj 3349 简单hash
    poj3274 hash
    poj 1459 最大流 Dinic模板题
    poj 3436 最大流-拆点
    poj 3020 二分图最大匹配
    poj 1094 简单拓扑排序
    poj3687 反向建图拓扑排序
    poj 3267
  • 原文地址:https://www.cnblogs.com/darrenji/p/3581320.html
Copyright © 2020-2023  润新知