admin管理员组

文章数量:1335824

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       
}

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       
}
Share Improve this question asked Sep 20, 2013 at 15:39 danieldaniel 35.7k40 gold badges107 silver badges162 bronze badges 4
  • you know that json is of type string not array? – tikider Commented Sep 20, 2013 at 15:41
  • what is wrong with my code? – daniel 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. – tikider Commented Sep 20, 2013 at 15:58
  • 2 asp mvc does the conversion – daniel Commented Sep 20, 2013 at 16:00
Add a ment  | 

3 Answers 3

Reset to default 6

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

contentType: 'application/json'

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.

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!");
            }
        });


    }

本文标签: javascriptSend array of Objects to MVC ControllerStack Overflow