0

我正在使用 c# 在 MVC5 中工作,并且我正在使用 JSON 将数据发布到 Web-api2 服务器,如下所示:

function SendSms() {
    var studentData = {
        Id: "4",
        ClientId: "2",
        NoOfRecipient: "3",
        Msg: "This is a test",
        Numbers: [
            { Number: "988888888", Id: "3"},
            { Number: "988888787", Id: "5"}
        ]
    };
    console.log(JSON.stringify(studentData));

    $.ajax({
        cache: false,
        type: "POST",
        url: "http://localhost/ProductsApp/api/SmsClients",
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify(studentData),
        dataType: "json",
        processData: true,
        success: function (data, status, jqXHR) {
           console.log(data);
        },statusCode: {
            201 /*Created*/: function (data) {
               console.log("created");
            }
        }
    })
    .fail(
    function (xhr, textStatus, err) {
        console.log("Error");
    });
}

并接受这样的 JSON:

public HttpResponseMessage Post(SmsData smsData)
{
    //code to be performed after getting Post
}

我的 SmsData 模型是这样的:

public class SmsData
{
    public int Id { get; set; }
    public int ClientId { get; set; }
    public int NoOfRecipient { get; set; }
    public List<Numbers> Numbers { get; set; }
    public string Msg { get; set; }
    public DateTime SentDate { get; set; }
}

public class Numbers{
    public int Id { get; set; }
    public long Number { get; set; }
}

但我得到了 smsData Null 的 Numbers 属性。为什么会这样...为什么 Numbers 属性会为空。我怎样才能得到数字

4

1 回答 1

0

使用数组而不是列表应该会有所帮助,但您也可以在执行 ajax 调用时尝试设置“traditional:true”参数。

$.ajax({ 缓存:假, 传统:真, 类型:“POST”,

于 2014-01-23T11:39:23.213 回答