I've attempting to model bind Json data to a property class in MVC. Object 2 is passed in to the controller OK. Object 3 is a list of lists and I'm not sure my data structure is correct in javascript.
I'm receiving the BlockEntrances data (size of array) but not the BlockEntranceButtons data.
"BlockEntranceButtons" does not appear in the Json string when i believe it should be there.
Could someone please point me in the right direction?
Edit:
Altered step3 in to 2 objects. Json string looks more like i want but my controller is still receiving a null value.
Javascript:
Step2 = {};
Step2.MainEntranceButtons = [0, 1, 2, 3, 4, 5, 6, 7, 8]
Step3 = {};
Step3.BlockEntrances = {};
Step3.BlockEntrances.BlockEntranceButtons = [];
Step3.BlockEntrances.BlockEntranceButtons[0] = [1, 2, 3, 4, 5, 6, 7, 8];
Step3.BlockEntrances.BlockEntranceButtons[1] = [8, 7, 6, 5, 4, 3, 2, 1];
Step3.BlockEntrances.BlockEntranceButtons[2] = [5, 5, 5, 5, 5, 5, 5, 5];
var StringToPost = JSON.stringify({ Step2Object: Step2, Step3Object: Step3 });
$.ajax({
url: "/Home/CollectJson1/",
type: 'POST',
contentType: "application/json",
dataType: 'html',
data: StringToPost,
success: function (data) {
console.log(data);
}
});
Controller:
<HttpPost>
Function CollectJson1(ByVal Step2Object As Step2Data, ByVal Step3Object As Step3Data) As JsonResult
Return Json(Step3Object)
End Function
Classes:
Public Class Step2Data
Public Property MainEntranceButtons As List(Of String)
End Class
Public Class Step3Data
Public Property BlockEntrances As List(Of Step3SubData)
End Class
Public Class Step3SubData
Public Property BlockEntranceButtons As List(Of String)
End Class
Json Data posted for Object3:
{"Step3Object":{"BlockEntrances":{"BlockEntranceButtons":[[1,2,3,4,5,6,7,8],[8,7,6,5,4,3,2,1],[5,5,5,5,5,5,5,5]]}}}