title: partial update with asp.net web api
body: <p>I created a simple todo list application in asp.net mvc 3 with web api and dbContext. ( with backbone and requirejs for the client )
  Everything works fine, but i am sort of bothered with the fact that i have to sent the entire model to the server if i check or uncheck a todo item as done.
  I would like to only sent the "done" field when submitting data.</p>
  
  <p>I should mention that i'm also using the JsonNetFormatter to use JSON.NET as the default Serializer ( explained here: <a href="http://blogs.msdn.com/b/henrikn/archive/2012/02/18/using-json-net-with-asp-net-web-api.aspx" rel="noreferrer">http://blogs.msdn.com/b/henrikn/archive/2012/02/18/using-json-net-with-asp-net-web-api.aspx</a> ).</p>
  
  <p>Currently this is my api controller method to update the model </p>
  
  <pre><code>public HttpResponseMessage Put(Todo todo)
  {
      _db.Entry(todo).State = EntityState.Modified;
      _db.SaveChanges();
      return new HttpResponseMessage(HttpStatusCode.NoContent);
  }
  </code></pre>
  
  <p>It takes this as json data</p>
  
  <pre><code>{"content":"Pick up milk","done":false,"id":10}
  </code></pre>
  
  <p>Off course this works, but it is updating the entire model, it should only update 1 field.
  I can achieve to only send the changed fields to the server from the browser, but i am not sure what the web api method should look like.
  I was thinking about doing something with FormCollection but this doesn't seem to work with the web api as it appears to be trying to serialize the submitted formvalues directly to FormCollection type, I get this error.</p>
  
  <pre><code>Cannot deserialize JSON object (i.e. {"name":"value"}) into type 'System.Web.Mvc.FormCollection'.
  </code></pre>
  
  <p>How can i send a partial update for 1 or more fields from a model to my web api ?
  I only want to send the updated fields to the server, and from there only update those fields to the database.  I certainly do not want to query the database before updating.</p>