title: strange behaviour of Html.BeginForm
body: <p>lets create empty asp.net mvc 3 application.
  code is </p>
  
  <pre><code>namespace MvcApplication1.Controllers
  {
  public class MyModel
  {
      public int Id { get; set; }
  }
  
  public class HomeController : Controller
  {
      public ActionResult Index()
      {
          return Index1(new MyModel() {Id = 100});
      }
      public ActionResult Index1(MyModel model)
      {
          var nm = new MyModel();
          nm.Id = model.Id + 1;
          return View("test", nm);
      }
  }
  </code></pre>
  
  <p>lets create shared view called test. View code is </p>
  
  <pre><code>@using MvcApplication1.Controllers
  @model MyModel
  
  @if (Model != null)
  {
      using (Html.BeginForm("Index1", "Home", FormMethod.Post, new { autocomplete = "off" }))
      {
      &lt;div id="compareQuestions"&gt;
          &lt;p&gt;@Model.Id&lt;/p&gt;
          @Html.HiddenFor(m =&gt; m.Id)
          @Html.TextBoxFor(m =&gt; m.Id)
          &lt;input type="submit" value="save"/&gt;
      &lt;/div&gt;
      }
  }
  </code></pre>
  
  <p>When we post form first time all is ok, but when it reloads after first post value in textbox incorrect. if we change this value and save post on controller we get model with the incorrect value, but not which we enter. How is this possible?</p>