【发布时间】:2009-10-02 19:55:58
【问题描述】:
我有一个简单的地址输入应用程序,我正在尝试将 IDataErrorInfo 接口用作explained on the asp.net site。
它适用于可以独立验证的项目,但在某些项目依赖于其他项目时效果不佳。例如,验证邮政编码取决于国家/地区:
private string _PostalCode;
public string PostalCode
{
get
{
return _PostalCode;
}
set
{
switch (_Country)
{
case Countries.USA:
if (!Regex.IsMatch(value, @"^[0-9]{5}$"))
_errors.Add("PostalCode", "Invalid Zip Code");
break;
case Countries.Canada:
if (!Regex.IsMatch(value, @"^([a-z][0-9][a-z]) ?([0-9][a-z][0-9])$", RegexOptions.IgnoreCase))
_errors.Add("PostalCode", "Invalid postal Code");
break;
default:
throw new ArgumentException("Unknown Country");
}
_PostalCode = value;
}
}
因此,您只能在设置国家/地区后验证邮政编码,但似乎无法控制该顺序。
我可以使用来自 IDataErrorInfo 的错误字符串,但它不会显示在该字段旁边的 Html.ValidationMessage 中。
【问题讨论】:
标签: asp.net-mvc validation idataerrorinfo