Take the 2-minute tour ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

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

share|improve this question

1 Answer 1

up vote 7 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: ");
    }
});
share|improve this answer
2  
Thanks apparently the content type made more trouble than good. –  Dofs Apr 1 '10 at 7:54
    
Same problem, I couldn't figure out why the model binding wasn't working for a simple string... I had the contentType set to json. After removing it, worked great. –  DavGarcia Jan 19 '11 at 22:15

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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