title: Html.BeginForm not posting to server despite submit button
body: <p>I have a standard form, which is wrapped into a Html.BeginForm. In the bottom there is a submit button.</p>
  
  <p>However, when clicking the button my controller isn't getting hit. I experience a reload of the page, but no code is hit. I've tried to debug on the controllers side and try code I could see get hit, but it's definetely not being hit.</p>
  
  <p><strong>Razor - Index.cshtml under /Views/BuyBitcoins/Index.cshtml:</strong></p>
  
  <pre><code>  @using (Html.BeginForm("BuyBitcoinsNow", "BuyBitcoins",FormMethod.Post))
              {
  
  
                  &lt;h3&gt;@ModelRes.BuyBitcoinStrings.Form_YourPurchase&lt;/h3&gt;
                  &lt;p&gt;
                      @ModelRes.BuyBitcoinStrings.Form_HowMuch&lt;br /&gt;
                      @Html.EditorFor(model =&gt; model.PurchaseViewModel.PurchaseAmount)
                  &lt;/p&gt;    
  
  
                  &lt;div id="plcBitcoinAddress"&gt;
  
                      &lt;p&gt;
                          @ModelRes.BuyBitcoinStrings.Form_EnterAddress&lt;br /&gt;
                          @Html.EditorFor(model =&gt; model.PurchaseViewModel.BitcoinAddress)
                      &lt;/p&gt;
  
                  &lt;/div&gt;
  
                  &lt;h3&gt;@ModelRes.BuyBitcoinStrings.Form_Summary&lt;/h3&gt;
  
  
                  &lt;h3&gt;@ModelRes.BuyBitcoinStrings.Form_Personal_Headline&lt;/h3&gt;
                  &lt;p&gt;
                      @ModelRes.BuyBitcoinStrings.Form_Name:&lt;br /&gt;
                      @Html.EditorFor(model =&gt; model.Name)
                  &lt;/p&gt;
  
                  &lt;p&gt;
                      @ModelRes.BuyBitcoinStrings.Form_Email:&lt;br /&gt;
                      @Html.EditorFor(model =&gt; model.Email)
                  &lt;/p&gt;
  
                  &lt;p&gt;
                      @ModelRes.BuyBitcoinStrings.Form_Phone&lt;br /&gt;
                      @Html.EditorFor(model =&gt; model.Phone)
                  &lt;/p&gt;
  
  
                  &lt;div id="plcTerms" class="checkbox"&gt;
                      &lt;label for="termsChk"&gt;
                          &lt;input id="termsChk" type="checkbox"&gt;
                          @ModelRes.BuyBitcoinStrings.Form_accept
  
                      &lt;/label&gt;
                  &lt;/div&gt;
                  &lt;div id="newsletterTerms" class="checkbox"&gt;
                      &lt;label for="newsletterChk"&gt;
                          &lt;input id="newsletterChk" type="checkbox" checked="checked"&gt;
                          @ModelRes.BuyBitcoinStrings.Form_newsletter
                      &lt;/label&gt;
                  &lt;/div&gt;
  
  
                  &lt;div id="usp_list"&gt;
                      &lt;ul&gt;
                          &lt;li&gt;
                              &lt;img src="@Url.Content("~/Content/images/1387430978_checkmark-g.png")" style="width: 20px;" /&gt;
                              @ModelRes.BuyBitcoinStrings.Form_usp1&lt;/li&gt;
                          &lt;li&gt;
                              &lt;img src="@Url.Content("~/Content/images/1387430978_checkmark-g.png")" style="width: 20px;" /&gt;
                              @ModelRes.BuyBitcoinStrings.Form_usp2&lt;/li&gt;
                          &lt;li&gt;
                              &lt;img src="@Url.Content("~/Content/images/1387430978_checkmark-g.png")" style="width: 20px;" /&gt;
                              @ModelRes.BuyBitcoinStrings.Form_usp3&lt;/li&gt;
                      &lt;/ul&gt;
                  &lt;/div&gt;
  
  
                  &lt;input id="submitBtn" type="submit" value="@ModelRes.BuyBitcoinStrings.Form_button" class="btn btn-success btn-lg" /&gt;
  
              }
  </code></pre>
  
  <p><strong>RouteConfig.cs:</strong></p>
  
  <pre><code>public static void RegisterRoutes(RouteCollection routes)
          {
              routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
  
              routes.MapRoute(
                  name: "Order info",
                  url: "orders/{id}",
                  defaults: new { controller = "Orders", action = "Index", id = "" });
  
              routes.MapRoute(
         name: "Shop",
         url: "shop/{action}/{id}",
         defaults: new { controller = "Shop", action = "Index", id = UrlParameter.Optional }
         );
  
  
              routes.MapRoute(
                  name: "Default",
                  url: "{controller}/{id}",
                  defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                  );
  
  
              foreach (Route r in routes)
              {
                  if (!(r.RouteHandler is SingleCultureMvcRouteHandler))
                  {
                      r.RouteHandler = new MultiCultureMvcRouteHandler();
                      r.Url = "{culture}/" + r.Url;
  
                      if (r.Defaults == null)
                      {
                          r.Defaults = new RouteValueDictionary();
                      }
                      r.Defaults.Add("culture", Culture.en.ToString());
  
                      //Adding constraint for culture param
                      if (r.Constraints == null)
                      {
                          r.Constraints = new RouteValueDictionary();
                      }
                      r.Constraints.Add("culture", new CultureConstraint(Culture.en.ToString(),
           Culture.da.ToString()));
                  }
              }
  
          }
  </code></pre>
  
  <p><strong>My controller, BuyBitcoinsController.cs</strong>:</p>
  
  <pre><code>public OrderManager OrderManager { get; set; }
  
          public BuyBitcoinsController()
          {
              OrderManager = new OrderManager();
          }
  
          public ActionResult Index()
          {
              return View(new BuyBitcoinViewModel());
          }
  
          [HttpPost]
          public ActionResult BuyBitcoinsNow(BuyBitcoinViewModel model)
          {
              OrderManager.CreateOrder(new Order()
                  {
                      BitcoinAddress = model.PurchaseViewModel.BitcoinAddress,
                      DateCreated = DateTime.Now,
                      OrderState = OrderState.OrderCreated,
                      Guid = Guid.NewGuid(),
                      Logs = new Dictionary&lt;DateTime, OrderSystemLog&gt;(),
                      User = new XbtUser()
                          {
                              Email = model.Email,
                              FirstName = model.Name,
                              Phone = model.Phone,
                              IsAnonymous = true,
  
                          }
                  });
  
              return View("Index");
              // return View("~/Views/Orders/25892e17-80f6-415f-9c65-7395632f0223");
          }
  </code></pre>
  
  <p><strong>Notes</strong></p>
  
  <p>I have tried to comment out the language routes in RouteConfig.cs (the foreach loop), but it still made no postback to my controller).</p>
  
  <p>Also, there are no javascript errors on load or click according to FireBug.</p>