title: .NET MVC 4 HttpPost going wrong
body: <p>I got a intresting little problem with .NET MVC 4.
  I'm trying to learn how this works and after doing a few tutorials I keep running into the same problem.</p>
  
  <p>Down here is my default Index method wich should be called when the page is loading.</p>
  
  <pre><code>   public ActionResult Index() {
         var result = (from Product in db.Products
                       orderby Product.Id ascending
                       select Product);
         return View(result.ToList());
     }
  </code></pre>
  
  <p>The method returns a list of product items from my database..</p>
  
  <pre><code>@using (Html.BeginForm("Index", "Stap1", FormMethod.Post, new { id = "form1" }))
  {
      &lt;select id="select" size="4" name="product"&gt;
          @foreach (var item in Model)
          {
              &lt;option value="@item.Id" &gt;@Html.DisplayFor(modelItem =&gt; item.Naam), @Html.DisplayFor(modelItem =&gt; item.Prijs)&lt;/option&gt;            
          }
      &lt;/select&gt;
      &lt;input type="submit" value="Voeg Toe!" name="Add" /&gt;
  }
  </code></pre>
  
  <p>I added a function to catch the post data of the form. like this..</p>
  
  <pre><code>[HttpPost]
  public ActionResult Index(int product = 0) {
                  var result = (from Product in db.Products
                                orderby Product.Id ascending
                                select Product);
                  System.Diagnostics.Debug.WriteLine("wrong function called!");
                  return View(result.ToList());
              }
  </code></pre>
  
  <p>As you can see it's pretty basic stuff, however, when I try to load the Index page. It calls the 'overloaded httppost Index()" instead of the normal one. Why does it call a HTTPPOST method when nothing is posted?</p>