子类的条件验证

时间:2011-02-16 11:11:01

标签: c# asp.net-mvc asp.net-mvc-3

我有以下类的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类中停止验证属性。

你有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您是否考虑仅在需要时设置MailingAddress,从而让MailingAddrressSameAsHome属性成为只读:

    public bool MailingAddrressSameAsHome 
    {
      //Null means no MailingAddress, which means: use HomeAddress
      get { return MailingAddress == null ; } 
    }

如果是这样,您可以在出现时验证MailingAddress。

此致 的Morten

答案 1 :(得分:-2)

您可以使用自定义属性

编写此内容