title: What is the role of [Bind(Exclude = "AlbumId")] annotation in data validation? What does scaffolding mean?
body: <p>I follow this tutorial: <a href="http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-6" rel="noreferrer">http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-6</a> </p>
  
  <p>When talking about form validation author says that Bind anntoations is used to:</p>
  
  <pre><code> Lists fields to exclude or include when binding parameter or form values to model properties
  </code></pre>
  
  <p>It is little bit gibberish to me - I don't get it. What does it actually mean? <strong>Maybe the problem is the word scaffold which has to meanings in dictionary that don't have any connection to IT.</strong></p>
  
  <p>What is the result of: <code>[Bind(Exclude = "AlbumId")]</code> and what is the sense of typing: <code>[ScaffoldColumn(false)]</code> - the column is not hidden by default, why to say it again.</p>
  
  <hr>
  
  <pre><code>namespace MvcMusicStore.Models
  {
      [Bind(Exclude = "AlbumId")]
      public class Album
      {
          [ScaffoldColumn(false)]
          public int      AlbumId    { get; set; }
          [DisplayName("Genre")]
          public int      GenreId    { get; set; }
          [DisplayName("Artist")]
          public int      ArtistId   { get; set; }
          [Required(ErrorMessage = "An Album Title is required")]
          [StringLength(160)]
          public string   Title      { get; set; }
          [Required(ErrorMessage = "Price is required")]
          [Range(0.01, 100.00,
              ErrorMessage = "Price must be between 0.01 and 100.00")]
          public decimal Price       { get; set; }
          [DisplayName("Album Art URL")]
          [StringLength(1024)]
          public string AlbumArtUrl { get; set; }
          public virtual Genre  Genre    { get; set; }
          public virtual Artist Artist   { get; set; }
      }
  }
  </code></pre>