2016-10-15 49 views
2

我想用Frombody屬性將簡單對象的數組發佈到我的MVC核心控制器,但出於某種原因,它將作爲空值發佈。如果我張貼只是它工作在這裏很好的單個對象是我的代碼:在你的行動MVC核心控制器中的對象數組始終爲空

$(document).ready(function() { 
    var tk = new Array(); 

    $("#calendar").fullCalendar({ 

     header: { 
      left: 'prevYear,prev,next,nextYear', 
      center: 'title', 
      right: 'month,agendaWeek,agendaDay', 
     }, 

     defaultView: 'month', 
     editable: true, 
     alldayslot: false, 
     selectable: true, 
     slotminutes: 15, 
     nextDayThreshold: "00:00:00", 
     events: "/Home/FullCalendar", 
     eventDrop: function(event, delta, revertFunc) 
     { 
      Update(event); 
     }, 
    }); 

    function Update(event) { 
     var datarow = 
      { 
       "id": event.id, 
       "start": event.start, 
       "end": event.end, 
      } 
     tk.push(datarow); 

     debugger; 
     confirm(("Save changes?")) 
     console.log(JSON.stringify(datarow)); 
     $.ajax({ 
      type: "post", 
      dataType: 'json', 
      cache: false, 
      contentType: "application/json; charset=utf-8", 
      data: JSON.stringify(tk), 
      url: '@Url.Action("JSON", "Home")', 
      success: function (data) { 
       debugger; 
      }, 
      error: function (xhr, ajaxOptions, thrownError) { 
       alert(xhr.status); 
       debugger; 
      } 
     }); 
    } 
}); 

我的控制器類

[HttpPost] 
public IActionResult UpdateTask([FromBody] List<Task_fullcal> td) 
{ 
    // Do something 
    // td is always null if passed as an array 
    //td working fine if passed as single value 
} 
+1

'數據:JSON.stringify({TK:TK}),' –

+0

感謝斯蒂芬您的回覆,但它仍然沒有工作。我仍然在控制器中獲得空引用,這就是我在請求體中得到的。 [{「id」:6,「start」:「2016-10-03T00:30:00」,「end」:null},{「id」:7,「start」:「2016-10-04T00: 10:00「,」end「:」2016-10-05T01:00:00「}] – user2741438

+0

'Task_fullcal'包含'int id','DateTime start'和'DateTime end'屬性嗎? (這應該是'{td:tk}'(而不是'{tk:tk})') –

回答

0

刪除FromBody,對於複雜類型的請求將包含在請求複雜類型身體。 嘗試使用PostMan並嘗試不同的選項。在URL

1通對象,使用[FromUri]

2通對象在身體,刪除像字符串FromBody

3通簡單值,如果想從URL

訪問用[FromUri]

4通過簡單的值就像在請求體中的字符串,用[FromBody]

相關問題