MVC选择性模型验证

时间:2012-11-11 14:09:23

标签: c# asp.net-mvc unobtrusive-validation model-validation

在我的模型中,我有一个人的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?

1 个答案:

答案 0 :(得分:1)

一个选项是你可以在Person类中实现IValidatableObject。这将定义一个MVC将自动调用的Validate方法。然后,您可以以编程方式添加有关所需位置条目的逻辑,并验证那里的字段.....