title: CRUD in ASP.NET MVC 1 vs MVC 3
body: <p>I am doing [this tutorial][1] over at www.asp.net. It is written for ASP.NET MVC 1. Although most of the stuff works for MVC 3, I do have a question regarding this code:</p>
  <p><strong>ASP.NET MVC 1.0 (straight from the tutorial)</strong></p>
  <pre><code>[AcceptVerbs(HttpVerbs.Post)]
  public ActionResult Create([Bind(Exclude = &quot;Id&quot;)] Contact contactToCreate)
  {
      if (!ModelState.IsValid)
          return View();
  
      try
      {
          _entities.AddToContactSet(contactToCreate);
          _entities.SaveChanges();
          return RedirectToAction(&quot;Index&quot;);
      }
      catch
      {
          return View();
      }
  }
  </code></pre>
  <p><strong>ASP.NET MVC 3 (default Create action generated by MVC 3 Project, except my _entities object)</strong></p>
  <pre><code>[HttpPost]
          public ActionResult Create(FormCollection collection)
          {
              try
              {
                  _entities.AddToContacts(collection); // synax error
                  _entities.SaveChanges();
                  return RedirectToAction(&quot;Index&quot;);
              }
              catch
              {
                  return View();
              }
          }
  </code></pre>
  <p>So my question is why do we pass <code>Contact contactToCreate</code> in the first case, but <code>FormCollection collection</code> in the second?</p>
  <p>I could easily change argument in the second example to just Contact <code>Contact contactToCreate</code>, but I am curious as to what is this <code>FormCollection collection</code> stuff? Why did MVC 3 generate it for us? If it's possible to use <strong>FormCollection</strong> instead, how would the modified example look like?
  [1]: <a href="http://www.asp.net/mvc/tutorials/iteration-1-create-the-application-cs" rel="nofollow noreferrer">http://www.asp.net/mvc/tutorials/iteration-1-create-the-application-cs</a></p>