title: foreach() over List<T> in ViewBag recognizes T as object instead of actual type
body: <p>I am getting this strange error where Razor would say a property does not exist within an object. I sense I am doing a silly mistake, but I've been battling with this for a while but no luck. Any clues?</p>
  
  <p>Controller method:</p>
  
  <pre><code>List&lt;Conversations&gt; lConversations = usr.conversations.OrderBy(o =&gt; o.active).ThenByDescending(o =&gt; o.updated_at).ToList().Select(i =&gt; new Conversations
  {
      Created = i.created_at, Creator = string.Format("{0} {1}", i.user.first_name, i.user.last_name), Name = i.name, Status = (i.active) ? "Active" : "Deactivated", TotalUsers = i.message_recipient.Count(c =&gt; c.active)
  }).ToList();
  
  ViewBag.conversations = lConversations;
  </code></pre>
  
  <p>Within the view file, I attempt to foreach through the object and print out the data.</p>
  
  <pre><code>@foreach (var i in ViewBag.conversations)
  {
      &lt;tr&gt;
          &lt;td&gt;@i.Name&lt;/td&gt;
          &lt;td&gt;@i.TotalUsers&lt;/td&gt;
          &lt;td&gt;@i.Creator&lt;/td&gt;
          &lt;td&gt;@i.Status&lt;/td&gt;
          &lt;td&gt;@i.Created&lt;/td&gt;
      &lt;/tr&gt;
  }
  </code></pre>
  
  <p>The error message which I am getting is: An exception of type 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' occurred in System.Core.dll but was not handled in user code</p>
  
  <p>Additional information: 'object' does not contain a definition for 'Name'</p>
  
  <p><strong>Edit: Conversation Object</strong></p>
  
  <pre><code>public class Conversations
  {
      public string Name { get; set; }
      public int TotalUsers { get; set; }
      public string Creator { get; set; }
      public string Status { get; set; }
      public DateTime Created { get; set; }
  }
  </code></pre>