3

I try to send an array of json objects to server:

var objectData = [
    {  Description: "Bezeichnung", Value: "1", Name: "Betrag (Brutto)" },
    { Description: "Dies ist die erste Bezeicnung", Value: "101", Name: "11,90" },
    { Description: "Dies ist die zweite Bezeicnung", Value: "12", Name: "11,90" }
];

$.ajax({
    url: "/system/createinvoice",
    data: JSON.stringify({ pos: objectData }) ,
    dataType: 'json',
    type: 'POST',
});

C#

public class InvoicePos
{
    public string Description { get; set; }
    public Nullable<double> Value { get; set; }
    public string Name { get; set; } 
}

[POST("/system/createinvoice")]
public void newquestion2(InvoicePos[] pos)
{
   // pos is always null       
}
4
  • you know that json is of type string not array? Commented Sep 20, 2013 at 15:41
  • what is wrong with my code? Commented Sep 20, 2013 at 15:45
  • I see in your code that you expect pos to be an array. I am not too familiar with C#, but if it does not make any kind of conversion for you of the the json string (which you got over http), so it is still a string and you will need to convert it to an array yourself. Commented Sep 20, 2013 at 15:58
  • 2
    asp.net mvc does the conversion Commented Sep 20, 2013 at 16:00

3 Answers 3

6

The dataType property is saying what you expect back from the server. Try setting the contentType:

contentType: 'application/json'
Sign up to request clarification or add additional context in comments.

Comments

0

Try

data: JSON.stringify({ pos: @objectData })

Also, check what is being rendered in the View through the browser. The reason you are getting null is likely because JavaScript is not getting a proper value.

Comments

0

function SendArrayOfObjects() { var things = [{ id: 1, color: 'red' }, { id: 2, color: 'blue' }, { id: 3, color: 'yellow' }];

          $.ajax({
            type: "POST",
            url: "<%= ResolveUrl("~/MyServices.aspx/GetData")%>",
              data: JSON.stringify({ objdata: things }),
            contentType: "application/json;charset=utf-8",
            dataType: "json",
            success: function()
            {
                $("#msg").html("data sent successfully!");
            },
            error: function()
            {

                $("#msg").html(" Can not send data!");
            }
        });


    }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.