title: @Html.DisplayNameFor not showing data MVC5
body: <p>I have searched around and not had much luck finding a solution to my exact problem.</p>
  
  <p><strong>Model</strong></p>
  
  <pre><code>public class PageDetailsViewModel
  {
      public int Id { get; set; }
      public string Name { get; set; }
      public string Description { get; set; }
      public string Image { get; set; }
  
  }
  </code></pre>
  
  <p><strong>Controller</strong></p>
  
  <pre><code> public ActionResult Search(int SysID)
      {
  
        var query = from r in _db.Auctions
        from d in _db.Product_Details
        where SysID == d.Id &amp;&amp; r.BidStatus == "Open" &amp;&amp; d.Id == r.Product_DetailsId
        select new PageDetailsViewModel
        {                            
            Name = d.Name,
            Description = d.Description,
            Image = d.Image
  
        };
      return View(query);
      }
  </code></pre>
  
  <p><strong>View</strong></p>
  
  <pre><code>@model IEnumerable&lt;ProjectT.Models.PageDetailsViewModel&gt;
  
  @Html.DisplayNameFor(x =&gt; x.Name)
  </code></pre>
  
  <p>This fails to bring the name through. However, if I use a foreach</p>
  
  <pre><code>@foreach (var item in Model)
  {
        @item.Name
  }
  </code></pre>
  
  <p>It brings through the name no problem.</p>
  
  <p>Any help is much appreciated.</p>