子类的条件验证
Posted
技术标签:
【中文标题】子类的条件验证【英文标题】:Conditional validation of subclass 【发布时间】:2011-06-28 06:59:31 【问题描述】:我有以下类的 ASP.NET MVC 3 应用程序:
public class Person
public string FirstName get; set;
public string LastName get; set;
public Address HomeAddress get; set;
// [Optional("MailingAddrressSameAsHome")] - some custom attribute
public Address MailingAddress get; set;
public bool MailingAddrressSameAsHome get; set;
public class Address
[Required]
public string Street get; set;
...
现在我想验证,仅当 MailingAddressSameAsHome 为 false 时邮寄地址。不幸的是,我不知道如何停止验证 Address 类中的属性。
你有什么想法吗?
【问题讨论】:
【参考方案1】:您是否考虑仅在需要时设置 MailingAddress,从而让属性 MailingAddrressSameAsHome 为只读:
public bool MailingAddrressSameAsHome
//Null means no MailingAddress, which means: use HomeAddress
get return MailingAddress == null ;
如果是这样,您可以随时验证 MailingAddress。
问候, 莫腾
【讨论】:
否,因为 ASP.NET MVC 不支持这个【参考方案2】:你可以用自定义属性来写这个
【讨论】:
展示你将如何实现这一目标总是一个好主意,而不是说出来。 SO的社区很大,没有人拥有相同的知识或水平。 ;)以上是关于子类的条件验证的主要内容,如果未能解决你的问题,请参考以下文章