title: Html.HiddenFor and Html.Hidden not POSTing back to Controller correctly
body: <p>I'm having a problem using the HiddenFor and Hidden helpers to store data to be POSTed back to a Controller. I've got a Controller with two methods:</p>
  
  <pre><code>Function Index() As ActionResult
      Dim model As New FormPOSTViewModel With {.Name = "Test", .Description = "Test description goes here", .Value = 12}
      Return View(model)
  End Function
  
  &lt;HttpPost&gt;
  Function Update(model As FormPOSTViewModel) As ActionResult
      Dim updated As New FormPOSTViewModel
      updated.Name = model.Name &amp; "_x"
      updated.Description = model.Description &amp; "_x"
      updated.Value = model.Value * 2
      Return View("Index", updated)
  End Function
  </code></pre>
  
  <p>and a view with three forms, one using HTML, one using HiddenFor and one using Hidden:</p>
  
  <pre><code>@ModelType MVCAjaxWorkbench.FormPOSTViewModel
  
  @Using Html.BeginForm("Update", "FormPOST")
      @:&lt;table&gt;
          @:&lt;tr&gt;&lt;td&gt;@Html.DisplayFor(Function(m) Model.Name)&lt;/td&gt;&lt;/tr&gt;
          @:&lt;tr&gt;&lt;td&gt;&lt;input type="hidden" id="Name" name="Name" value="@Model.Name" /&gt;&lt;/td&gt;&lt;/tr&gt;
          @:&lt;tr&gt;&lt;td&gt;&lt;input type="hidden" id="Description" name="Description" value="@Model.Description" /&gt;&lt;/td&gt;&lt;/tr&gt;
          @:&lt;tr&gt;&lt;td&gt;&lt;input type="hidden" id="Value" name="Value" value="@Model.Value" /&gt;&lt;/td&gt;&lt;/tr&gt;
      @:&lt;/table&gt;
      @:&lt;input type="submit" /&gt;
  End Using
  
  @Using Html.BeginForm("Update", "FormPOST")
      @:&lt;table&gt;
          @:&lt;tr&gt;&lt;td&gt;@Html.DisplayFor(Function(m) Model.Name)&lt;/td&gt;&lt;/tr&gt;
          @:&lt;tr&gt;&lt;td&gt;@Html.Hidden("Name", Model.Name)&lt;/td&gt;&lt;/tr&gt;
          @:&lt;tr&gt;&lt;td&gt;@Html.Hidden("Description", Model.Description)&lt;/td&gt;&lt;/tr&gt;
          @:&lt;tr&gt;&lt;td&gt;@Html.Hidden("Value", Model.Value)&lt;/td&gt;&lt;/tr&gt;
      @:&lt;/table&gt;
      @:&lt;input type="submit" /&gt;
  End Using
  
  @Using Html.BeginForm("Update", "FormPOST")
      @:&lt;table&gt;
          @:&lt;tr&gt;&lt;td&gt;@Html.DisplayFor(Function(m) Model.Name)&lt;/td&gt;&lt;/tr&gt;
          @:&lt;tr&gt;&lt;td&gt;@Html.HiddenFor(Function(m) Model.Name)&lt;/td&gt;&lt;/tr&gt;
          @:&lt;tr&gt;&lt;td&gt;@Html.HiddenFor(Function(m) Model.Description)&lt;/td&gt;&lt;/tr&gt;
          @:&lt;tr&gt;&lt;td&gt;@Html.HiddenFor(Function(m) Model.Value)&lt;/td&gt;&lt;/tr&gt;
      @:&lt;/table&gt;
      @:&lt;input type="submit" /&gt;
  End Using
  </code></pre>
  
  <p>and a ViewModel:</p>
  
  <pre><code>Public Class FormPOSTViewModel
      Public Property Name As String
      Public Property Description As String
      Public Property Value As Integer
  End Class
  </code></pre>
  
  <p>What I want to happen is that the model is updated each time the Submit button is pressed appending '_x' to the end multiple times so that it ends up something like 'Test_x_x_x_x_x_x'. If I use the Submit button in the form where I've created the HTML by hand then everything works okay.</p>
  
  <p>However what actually happens when I fire this up and press one of the <em>other</em> Submit buttons is that only a single '_x' is ever appended. This seems to be because the model that the Update method receives on the second and subsequent times around is the model sent to the page by the original Index method.</p>
  
  <p>Is this bug with Hidden/HiddenFor or am I using them incorrectly?</p>