在我的模型中,我有一个人的HomeAddress和BillingAddress类型为location:
class Person {
public Location HomeAddress { get; set; }
public Location BillingAddress { get; set; }
... other properties
}
class Location {
[Required]
public string ZipCode { get; set; }
... other properties
}
我正在寻找一种优雅的方法来仅在必需的属性HomeAddress上验证'required'属性。我正在使用普通的componentmodel属性并在MVC中内置模型验证。 所以我正在寻找的是一个属性,它将检查Location是否在Person.HomeAddress或.BillingAddress中,并且仅在第一种情况下进行验证。或者我应该更改我的设计并在没有输入足够信息的情况下使bindingaddress为NULL?
答案 0 :(得分:1)
一个选项是你可以在Person类中实现IValidatableObject。这将定义一个MVC将自动调用的Validate方法。然后,您可以以编程方式添加有关所需位置条目的逻辑,并验证那里的字段.....