title: Default model binder freaks out when explicitly defining controller parameter
body: <p>I'm trying to figure out the model binding in MVC3. Look at this example. </p>
  
  <p>Here's the controller code:  </p>
  
  <pre><code>public ActionResult Index()
      {
          Person person = new Person{ Name = "Test" };
  
          return View(person);
      }
  
      [HttpPost]
      public string Edit(Person personModel)
      {
          return string.Format("From server: {0}", personModel.Name);
      }
  </code></pre>
  
  <p>And here's the html/javascript bit: </p>
  
  <pre><code>@model MCV3.Test.Models.Person
  &lt;!DOCTYPE html&gt;
  &lt;html&gt;
  &lt;head&gt;
      &lt;script type="text/javascript"&gt;
      $(document).ready(function (){
  
          var model = @Html.Raw(Json.Encode(Model));
  
          $.ajax({
              url : "/Person/Edit", 
              type: "Post",
              datatype: "json",
              data :  model, 
              success: function (data) {                   
                  $("#result").text(data);                    
              }
          });
  
      });
  &lt;/script&gt;
  &lt;/head&gt;
  &lt;body&gt;
      &lt;label id="result"&gt;&lt;/label&gt;
  &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>The code above works, but if I change data setting of the ajax call to this:</p>
  
  <pre><code>$.ajax({
              url : "/Person/Edit", 
              type: "Post",
              datatype: "json",
               data : {personModel : model},
              success: function (data) {                   
                  $("#result").text(data);                    
              }
          });
  </code></pre>
  
  <p>it doesn't work any more: the model is of the correct type, but the name property is null.</p>
  
  <p>In the example that works, the post parameters are: </p>
  
  <pre><code>Name    Test
  
  Name=Test
  </code></pre>
  
  <p>But in the example that doesn't work, they are: </p>
  
  <pre><code>personModel[Name]   Test
  
  personModel%5BName%5D=Test
  </code></pre>
  
  <p>It seems like MVC can't serialize the request if it looks like this: <code>personModel[Name] Test</code> </p>
  
  <p>Is there any way to solve this without writing a custom binder?</p>