【发布时间】:2010-08-22 10:28:41
【问题描述】:
我正在开发一个多语言网站,我想本地化大多数 ValidationAttribute 的验证错误消息,例如 [Requried]
我知道它可以像Phil Haack 在这个article 中显示的那样完成。
[Required(ErrorMessageResourceType = typeof(Resources),
ErrorMessageResourceName = "Required")]
但我想自定义错误消息,就像我在此处使用自定义验证属性所做的那样:
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property,
AllowMultiple = false,
Inherited = true)]
public sealed class ValidateminRequiredNonalphanumericCharactersAttribute
: ValidationAttribute
{
private const string _defaultErrorMessage = // Message From Resource Here ( i will be using two variables in this message )
private readonly int _minnonalphanumericCharactersCounter = Membership.Provider.MinRequiredNonAlphanumericCharacters;
public ValidateminRequiredNonalphanumericCharactersAttribute()
: base(_defaultErrorMessage)
{
}
public override string FormatErrorMessage(string name)
{
return String.Format(CultureInfo.CurrentUICulture,
ErrorMessageString, name, _minnonalphanumericCharactersCounter);
}
public override bool IsValid(object value)
{
string valueAsString = value as string;
if (String.IsNullOrEmpty(valueAsString))
return false;
int nonalphanumericCharactersCounter = 0;
char[] password = valueAsString.ToCharArray();
foreach (char c in password)
{
if (!char.IsNumber(c) && !char.IsLetter(c))
nonalphanumericCharactersCounter++;
}
return (nonalphanumericCharactersCounter >= _minnonalphanumericCharactersCounter);
}
}
有什么想法吗?
【问题讨论】:
标签: c# asp.net-mvc validation asp.net-mvc-2 localization