本文体验自定义错误信息。
系统默认的错误信息
在"MVC验证02-自定义验证规则、邮件验证"中,我们自定义了一个验证Email的类。如果输入邮件格式错误,出现系统默认的报错信息。
通过ErrorMessage来修改错误信息
[Email(ErrorMessage = "Email格式错误")][Display(Name = "邮件")]public string Email { get; set; }
在自定义验证特性中重写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);
}
}
}
MVC验证06-自定义错误信息,布布扣,bubuko.com
原文:http://www.cnblogs.com/darrenji/p/3581320.html