title: ASP.NET MVC (4) - Prevent calling IValidatableObject.Validate for properties
body: <p>How do I prevent calling <code>IValidatableObject.Validate</code> for properties and call it for the top level model only?</p>
  
  <pre><code>public abstract class Foo, IValidatableObject
  {
      public virtual Foo Related { get; set; }
  
      public virtual IEnumerable&lt;ValidationResult&gt; Validate(ValidationContext validationContext)
      {
          // This is first called for the 'Related' property 
          // and then for the model itself
          // I want this to be called for the top level model only
      }
  }
  </code></pre>