title: How to pass modified model back to Controller in ASP.NET Core
body: <p>I have the following model:</p>
  
  <pre><code>public class Card
  {        
      [DataType(DataType.Date)]
      [BindProperty]
      public DateTime Day { get; set; }
  
      [BindProperty]
      public string Field { get; set; }
  }
  </code></pre>
  
  <p>The following Controller:</p>
  
  <pre><code>// GET: Card
  public async Task&lt;IActionResult&gt; Index(DateTime? day)
  {
      return View(model);
  }
  
  public async Task&lt;IActionResult&gt; Refresh(DateTime? Day, string Field)
  {
       return RedirectToAction("Index", Day);
  }
  </code></pre>
  
  <p>The following View:</p>
  
  <pre><code>@model Card
  
  &lt;h1&gt;Cards&lt;/h1&gt;
  &lt;div class="text-center"&gt;
      &lt;label asp-for="Day" class="control-label"&gt;&lt;/label&gt;
      &lt;input asp-for="Day" class="form-control" /&gt;
  &lt;/div&gt;
  &lt;div class="text-center"&gt;
      &lt;label asp-for="Field" class="control-label"&gt;&lt;/label&gt;
      &lt;select asp-for="Field" class="form-control" asp-items="ViewBag.Fields"&gt;&lt;/select&gt;
  &lt;/div&gt;
  &lt;form asp-action="Refresh"&gt;
      @Html.HiddenFor(x =&gt; x.Day)
      @Html.HiddenFor(y =&gt; y.Field)
      &lt;input type="submit" value="Refresh" class="btn btn-default" /&gt;
  &lt;/form&gt;
  </code></pre>
  
  <p>No matter what I change, I always get the <em>initial</em> <code>Day</code> value back and <code>null</code> as the <code>Field</code>, like the <code>Model</code> has never been changed…</p>
  
  <p>So how can I post back the <em><strong>modified model</strong></em> to my controller?</p>