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]}
ビジュアルスタジオでは、プロパティ配列のすべての要素は0
です。私は最初の2
要素4 & 1
を受け取っていないようです。
ご協力いただければ幸いです。
おかげ
にコントローラのパラメータ名を設定しますが、機能CollectJson' 'でブレークポイントを入れて、あなたのテストの変数を検査あれば......、あなたはすべてのゼロを取得しますか?もしそうでなければ、クラス定義は有罪だと思います! – Hackerman
はいブレークポイントを設定するときにすべてゼロを設定します –
コントローラに渡す前にデータをストリング化する必要はありません。代わりに 'data:box'を試してみてください。 – lucasnadalutti