up vote 1 down vote favorite

Hi, I am trying to post some data with jQuery Ajax, but the parameters in my Ajax method are null.

This is simple test to send data:

 var dataPost = { titel: 'titel', message: 'msg', tagIds: 'hello' };
        jQuery.ajax({
            type: "POST",
            url: "Create",
            contentType: 'application/json; charset=utf-8',
            data: $.toJSON(dataPost),
            dataType: "json",
            success: function(result) {
                alert("Data Returned: ");
            }
        });

And my Ajax method looks like this:

[HttpPost]
public ActionResult Create(string title, string message, string tagIds)
{... }

There is something basic wrong with the data I send, but I can't figure out what. All the time the title, message and tagIds are null, so there is something wrong with the encoding, I just don't know what.

Optimally the parameter tagIds should be an array or list of guids.

Note: The jQuery.toJSON is this plugin

flag

73% accept rate

1 Answer

up vote 1 down vote accepted

The Create controller action doesn't expect parameters to be JSON serialized so you don't have to. Try passing them directly instead:

var dataPost = { titel: 'titel', message: 'msg', tagIds: 'hello' };
jQuery.ajax({
    type: "POST",
    url: "Create",
    data: dataPost,
    dataType: "json",
    success: function(result) {
        alert("Data Returned: ");
    }
});
link|flag
Thanks apparently the content type made more trouble than good. – Dofs Apr 1 at 7:54

Your Answer

get an OpenID
or
never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.