Just a quick tip. If you are ever debugging an MVC Action where you are passing JSON directly to the server (or for that matter where you are debugging anything complicated enough that you care about the raw data being passed to your method) I found this to be helpful.
Run this code in the debugger (or you can just paste it into a Watch item)
Request.InputStream.Position = 0
And then you can add this as a watch item
new System.IO.StreamReader(Request.InputStream).ReadToEnd()
This will write out the entire raw input data, which is very helpful if you want to see the exact JSON being passed to your method.