title: Form post passes null model - .NET MVC 4
body: <p>I am using <a href="https://stackoverflow.com/questions/7968768/mvc3-input-submit">this post as reference</a></p>
  
  <p>I am trying to get the Model that I passed to the view to post back to the HttpPost method of the controller when the input is clicked. <strong>However, the model, which in this case is just List, is null when it posts back.</strong></p>
  
  <p>I have included my code for reference. This is just a project for testing random stuff out so I apologize for the crappy code.</p>
  
  <p>I have the following View code: (showing the whole code for completness)</p>
  
  <pre><code>@{
      ViewBag.Title = "Home Page";
  }
  @using TestApp.MyObjects
  @model List&lt;Contact&gt;
  @Ajax.ActionLink("Show About", "About", new { id = "1" }, new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "contentDiv" })
  @Ajax.ActionLink("Show Contact", "Contact", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "contentDiv" })
  &lt;div id="contentDiv"&gt;&lt;/div&gt;
  @using (Html.BeginForm())
  {
  
      &lt;table&gt;
          @foreach (Contact c in Model)
          {
              &lt;tr&gt;
                  &lt;td&gt;
                      &lt;button aboutnum0 = "@c.someValues[0]" aboutnum1 = "@c.someValues[1]" aboutnum2 = "@c.someValues[2]" class="nameButton"&gt;@c.name&lt;/button&gt;
                  &lt;/td&gt;
              &lt;/tr&gt;
          }
      &lt;/table&gt;
      &lt;input value="@Model[0].name" /&gt;
      &lt;input value="@Model[0].name" /&gt;
      &lt;div id ="aboutContentDiv"&gt;&lt;/div&gt;
      &lt;input type="submit" /&gt;
      @ViewBag.myCoolValue
  }
  &lt;script type="text/javascript"&gt;
      $("button").click(function () {
          $("#aboutContentDiv").empty();
          $("#aboutContentDiv").append($("&lt;div&gt;&lt;/div&gt;").load("Home/About/" + $(this).attr("aboutnum0")));
          $("#aboutContentDiv").append($("&lt;div&gt;&lt;/div&gt;").load("Home/About/" + $(this).attr("aboutnum1")));
          $("#aboutContentDiv").append($("&lt;div&gt;&lt;/div&gt;").load("Home/About/" + $(this).attr("aboutnum2")));
      });
  
  &lt;/script&gt;
  </code></pre>
  
  <p>The Following is my Comtroller Code:</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Web;
  using System.Web.Mvc;
  using TestApp.MyObjects;
  
  namespace TestApp.Controllers
  {
      public class HomeController : Controller
      {
          public ActionResult Index()
          {
              ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
              Contact c = new Contact();
              c.name = "Some Name";
              c.someValues = new List&lt;string&gt;();
              c.someValues.Add("1");
              c.someValues.Add("2");
              c.someValues.Add("3");
              Contact c1 = new Contact();
              c1.name = "Some Name1";
              c1.someValues = new List&lt;string&gt;();
              c1.someValues.Add("4");
              c1.someValues.Add("5");
              c1.someValues.Add("6");
              Contact c2 = new Contact();
              c2.name = "Some Name2";
              c2.someValues = new List&lt;string&gt;();
              c2.someValues.Add("7");
              c2.someValues.Add("8");
              c2.someValues.Add("9");
              List&lt;Contact&gt; clist = new List&lt;Contact&gt;();
              clist.Add(c);
              clist.Add(c1);
              clist.Add(c2);
              Session["myCoolValue"] = "Cool1";
              TempData["myCoolValue"] = "Cool2";
              return View(clist);
          }
          [HttpPost]
          public ActionResult Index(List&lt;Contact&gt; contacts)
          {
              string name = contacts[0].name;
              return View("Index",contacts);
          }
          public PartialViewResult About(string id = "")
          {
              ViewBag.Message = "Your app description page.";
              About a = new About();
              a.someValue = id + " _ modified by contoller";
              ViewBag.myCoolValue = "Cool";
              return PartialView("About",a);
          }
  
          public PartialViewResult Contact()
          {
              ViewBag.Message = "Your contact page.";
  
              return PartialView("Contact");
          }
      }
  }
  </code></pre>