I\'m trying the following : A model with a dictionary inside send it on the first ajax request then take the result serialize it again and send it back to the controller. >
Just use a better deserializer. That first line where I set the position is because the JsonValueProvider leaves the stream at the end. More MS JSON fail.
Request.InputStream.Position = 0;
var reader = new StreamReader(Request.InputStream);
var model = Newtonsoft.Json.JsonConvert.DeserializeObject(reader.ReadToEnd());
So somewhere in that CreativeUploadModel object graph there is a prop like this:
public Dictionary Assets { get; set; }
Which is deserialized from (for example):
"assets":{"flash":{"type":"flash","value":"http://1234.cloudfront.net/1234.swf","properties":"{\"clickTag\":\"clickTAG\"}"}
Newtonsoft JSON is the default JSON provider for WebAPI... so it's not going anywhere.