2014-01-23 82 views
0

我在MVC5正與C#和 我張貼的數據網絡API2服務器JSON這樣的:獲得JSON的POST方法

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零的數字財產。爲什麼這是...爲什麼數字屬性爲空。我如何獲得數字

+0

您是否嘗試過使用一個數組,而不是針對數字領域的列表 –

+0

我相信'列表'不適用於Json解析器,請嘗試將其更改爲'Numbers [] Numbers' – dotTutorials

回答

0

使用數組而不是列表應該有幫助,但您也可以嘗試在執行ajax調用時設置「traditional:true」參數。

$阿賈克斯({ 緩存:假的, 傳統:真正的, 類型:? 「POST」,