2016-10-03 70 views
0

我想通過使用jQuery Ajax的整數數組,但我的控制器似乎並沒有收到數據。作爲數組傳遞JSON數據到MVC控制器屬性(模型綁定)

jQuery的AJAX調用:

var box = {MECallButtons: R_MainEntranceButtons } 

$.ajax({ 
    type: "POST", 
    url: "/Home/CollectJson/", 
    contentType:"application/json", 
    data: JSON.stringify(box), 
    success: function (data) { 
     alert(data); 
    } 
}); 

數據模型:

Public Class MyParamModel 
    Private f_MECallButtons(100) As Integer 
    Public Property MECallButtons(ByVal Index As Integer) As Integer 
     Get 
      Return f_MECallButtons(Index) 
     End Get 
     Set(ByVal value As Integer) 
      f_MECallButtons(Index) = value 
     End Set 
    End Property 
End Class 

控制器:

Function CollectJson(ByVal test As MyParamModel) As JsonResult 
    Return Json("12345") 
End Function 

Mozilla的控制檯(發送JSON數據):

{"MECallButtons":[4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 
,0,0,0,0,0,0,0,0,0]} 

在visual studio中,屬性數組中的所有元素都是0。我似乎沒有收到第一個2元素4 & 1

任何幫助,將不勝感激。

謝謝

+0

所以....如果你把'功能CollectJson'斷點和檢查測試變量,你得到所有零? ....如果沒有,那麼我認爲你的類定義是有罪的! – Hackerman

+0

是設置斷點時全部爲零 –

+0

我不認爲在將數據傳遞給控制器​​之前,您不需要將數據串聯起來。只需嘗試'data:box'。 – lucasnadalutti

回答

0

刪除Stringify並分配對象應該工作。

var box = {MECallButtons: R_MainEntranceButtons } 

$.ajax({ 
    type: "POST", 
    url: "/Home/CollectJson/", 
    contentType:"application/json", 
    data: {model: box}, 
    success: function (data) { 
     alert(data); 
    } 
}); 

然後在控制器設置的參數名稱

Function CollectJson(ByVal model As MyParamModel) As JsonResult 
    Return Json("12345") 
End Function 
相關問題