2011-02-16 1 views
3

J'ai application ASP.NET MVC 3 avec la classe suivante:validation conditionnelle de la sous-classe

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; } 
    ... 
} 

Et maintenant, je voudrais valider l'adresse postale que lorsque MailingAddressSameAsHome est faux. Malheureusement, je ne sais pas comment arrêter la validation des propriétés dans la classe Address.

Avez-vous des idées?

Répondre

0

Avez-vous envisagé la mise en MailingAddress que lorsque cela est nécessaire, laissant ainsi la propriété MailingAddrressSameAsHome être en lecture seule:

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

Si oui, vous pouvez valider MailingAddress chaque fois présent.

Cordialement, Morten

+0

Non, parce que ASP.NET MVC ne supporte pas cette –

-2

Vous pouvez écrire cela avec un attribut personnalisé

+1

Il est toujours une bonne idée de montrer comment vous réaliseriez que dire au lieu de cela . La communauté de SO est grande et personne n'a la même connaissance ou le même niveau. ;) – ForceMagic