【发布时间】:2014-07-31 13:34:07
【问题描述】:
我无法找到一种方法来根据同一模型中另一个属性的当前值动态验证属性。我进行了很多搜索,但找不到答案或类似示例。
在我的模型中,我有一个 zip code 属性和一个 countryID 属性。在每个不同国家的数据库中,我有一个不同的正则表达式来验证邮政编码。 然后使用 countryID 我可以从数据库中获取适当的正则表达式来验证相应国家/地区的邮政编码
所以在我的模型中,根据当前 countryID 的值,我希望验证 zip 字段。
我尝试创建自定义验证属性“ZipValidation(countryID)”,但在模型中它不允许我将另一个属性的值作为参数:
public class AddressViewModel
{
...
[Display(Name = "Country ID")]
public Guid? countryID { get; set; }
[Required]
//[ZipValidation(countryID)] does not compile because of the countryID
[Display(Name = "Zip")]
public string zip { get; set; }
}
知道如何实现吗?
【问题讨论】:
-
有一个
[Remote]验证属性。通常用于在让一个人注册之前检查用户名是否存在。您可能可以将其用于此目的。 link -
您可以实现自定义验证器但不传递值,您将传递属性名称并在验证器代码中获取属性值并验证邮政编码。
标签: c# asp.net-mvc validation