I don't understand why in my controller's action I get null as string:
Here is ajax call:
var dict = { "A": "fake1", "B": "fake2" };
var data = { "dictionary": JSON.stringify(dict) };
$.ajax({
url: '/MyController/MyMethod',
data: JSON.stringify(data),
type: 'POST',
contentType: 'application/json',
dataType: 'json'
});
And action method:
[HttpPost]
public ActionResult MyMethod( string dictionary )
{
Dictionary<string, string> usersToNotify = new JavaScriptSerializer().Deserialize<Dictionary<string, string>>( dictionary );
//...
}
new JavaScriptSerializer()before trying to access from itdictin thedataobject. Just adddicttodataand then stringify the whole lot.string Aandstring Band post back to the model? -data: { "A": "fake1", "B": "fake2" }and delete thecontentTypeoptiondata: JSON.stringify(data),todata: data,because you don´t need to stringify the param object name