title: MetadataType bug in MVC3?
body: <p>I've wracked my brain on using the MetadataType / buddy class to get DisplayName / Display attributes working on my Entity Framework classes in MVC3.  In my views, if I use @Html.LabelFor, I still just get the property name rather than the display attribute.  My use case and set-up is very simplistic:</p>
  
  <pre><code>[MetadataType(typeof(ProductMetadata))]
  public partial class Product
  {
  }
  
  public class ProductMetadata
  {
      [Display(Name = "Why does this not work????")]
      object ProductName { get; set; }
  
      [Display(Name = "Discontinued Date")]
      object DiscontinuedDate { get; set; }
  }
  </code></pre>
  
  <p>If I then use an Html helper like LabelFor:</p>
  
  <pre><code>@Html.LabelFor(m =&gt; m.First().ProductName)
  </code></pre>
  
  <p>I still just get the property name in my output.  Even if I do this programmatically in a custom Html extension, I just get the property name rather than the extected attribute value:</p>
  
  <pre><code>ModelMetadata.FromLambdaExpression(expression, html.ViewData).DisplayName
  </code></pre>
  
  <p>Any ideas or help on this would be appreciated. Is there something I am missing here?</p>