title: MVC return populated model from view after form submission
body: <p>My Model:</p>
  
  <pre><code> public class SendFileDeviceViewModel
    {
      public SendFileDeviceViewModel()
      {
        PolicyList = new List&lt;SendFileDevicePoliciesViewModel&gt;();
      }
      public string DeviceName { get; set; }
      public int DeviceId { get; set; }
      public string ManagementGroupName { get; set; }
      public int ManagementGroupId { get; set; }
      public bool ReloadConfiguration { get; set; }
      public bool ImmediateSend { get; set; }
      public DateTime TimeToSend { get; set; }
      public List&lt;SendFileDevicePoliciesViewModel&gt; PolicyList { get; set; }
    }
    public class SendFileDevicePoliciesViewModel
    {
      public int PackageTemplateId { get; set; }
      public string PolicyName { get; set; }
      public string PolicyType { get; set; }
      public string DefinedAt { get; set; }
      public bool ResendPolicy { get; set; }
    }
  </code></pre>
  
  <p>My View:</p>
  
  <pre><code>&lt;h2&gt;Send files to a Device @Model.DeviceName&lt;/h2&gt;
    &lt;h3&gt;Reload configuration settings&lt;/h3&gt;
    @Html.CheckBoxFor(m =&gt; m.ReloadConfiguration) @Html.LabelFor(m =&gt; m.ReloadConfiguration)
    &lt;h3&gt;Select the policies to reload&lt;/h3&gt;
    @using (Html.BeginForm())
    {
  
      @Html.HiddenFor(m =&gt; m.DeviceId)
      @Html.HiddenFor(m =&gt; m.ManagementGroupId)
  
      @Html.ValidationSummary(true)
  
      if (Model.PolicyList.Count() &gt; 0)
      {
      &lt;table&gt;
        &lt;caption&gt;
          Policies available for this device&lt;/caption&gt;
        &lt;thead&gt;
          &lt;tr&gt;
            &lt;th scope="col"&gt;
              &amp;nbsp;
            &lt;/th&gt;
            &lt;th scope="col"&gt;
              Policy Name
            &lt;/th&gt;
            &lt;th scope="col"&gt;
              Policy Type
            &lt;/th&gt;
            &lt;th scope="col"&gt;
              Defined At
            &lt;/th&gt;
          &lt;/tr&gt;
        &lt;/thead&gt;
        &lt;tbody&gt;
          @foreach (var policies in Model.PolicyList)
          {
            &lt;tr&gt;
              @*&lt;td&gt;@Html.CheckBox("PackageTemplateId", new { value = policies.PackageTemplateId })&lt;/td&gt;*@
              &lt;td&gt;@Html.CheckBoxFor(m =&gt; policies.ResendPolicy)&lt;/td&gt;
              &lt;td&gt;@policies.PolicyName&lt;/td&gt;
              &lt;td&gt;@policies.PolicyType&lt;/td&gt;
              &lt;td&gt;@policies.DefinedAt&lt;/td&gt;
            &lt;/tr&gt;
          }
        &lt;/tbody&gt;
      &lt;/table&gt;
      }
  
      &lt;div class="editor-label"&gt;
        @Html.LabelFor(m =&gt; m.ImmediateSend)
      &lt;/div&gt;
      &lt;div class="editor-field"&gt;
        @Html.CheckBoxFor(m =&gt; m.ImmediateSend)
      &lt;/div&gt;
  
      &lt;div class="editor-label"&gt;
        @Html.LabelFor(m =&gt; m.TimeToSend)
      &lt;/div&gt;
      &lt;div class="editor-field"&gt;
        @Html.EditorFor(m =&gt; m.TimeToSend)
      &lt;/div&gt;
      &lt;p&gt;
        &lt;input type="submit" value="Send files" /&gt;&lt;/p&gt;
  </code></pre>
  
  <p>My issue is when retrieving model from controller the PolicyList is always empty. Am I missing somethign simple here?</p>