title: Custom Display Names for Child Object's properties
body: <p>I'm following along the ASP.NET MVC 5 book, but I've ran into an itch that the book doesn't seem to scratch. I have an Album model as so:</p>
  
  <pre><code>namespace MvcMusicStore.Models
  {
      public class Album
      {
          public virtual int      AlbumId { get; set; }
          public virtual int      GenreId { get; set; }
          public virtual int      ArtistId { get; set; }
  
          public virtual string   Title { get; set; }
          public virtual decimal  Price { get; set; }
          public virtual string   AlbumArtUrl { get; set; }
  
          public virtual Genre    Genre { get; set; }
          public virtual Artist   Artist { get; set; }
      }
  }
  </code></pre>
  
  <p>To make a long story short, the <code>Genre</code> and <code>Artist</code> models both have a field called <code>Name</code>. When I list these using the <code>StoreManagerController</code>, it displays simply as "Name" in each of the headers. I can add a DataAnnotation to <code>Genre</code> and <code>Artist</code> suchs as <code>[Display(Name="Artist Name")]</code>, but I only want it to display as "Artist Name" in this particular instance. I don't want it to be so specific when I am on the "Edit Artist Page."</p>
  
  <p>I understand that I should go about doing this by using a ViewModel, but I am still confused as the view model would still just be pulling in the object, and that object's Display annotations are set in the model itself.</p>
  
  <p>Or better yet, is this something that's best left to the markup?</p>