【发布时间】:2016-10-05 14:01:00
【问题描述】:
我试图将 Json 数据建模到 MVC 中的属性类。对象 2 传入控制器 OK。对象 3 是一个列表列表,我不确定我的数据结构在 javascript 中是否正确。
我收到的是 BlockEntrances 数据(数组大小),但不是 BlockEntranceButtons 数据。
“BlockEntranceButtons”没有出现在 Json 字符串中,但我认为它应该存在。
有人可以指点我正确的方向吗?
编辑:
将 step3 更改为 2 个对象。 Json 字符串看起来更像我想要的,但我的控制器仍在接收空值。
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);
}
});
控制器:
<HttpPost>
Function CollectJson1(ByVal Step2Object As Step2Data, ByVal Step3Object As Step3Data) As JsonResult
Return Json(Step3Object)
End Function
类:
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
为 Object3 发布的 Json 数据:
{"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]]}}}
【问题讨论】:
-
不,因为数组索引没有名称。如果他们这样做了,您将拥有 3 个称为 BlockEntranceButtons。你会如何区分它们?您的意思是在 BlockEntrances 的每个索引处添加一个 object,其中包含一个 ID,然后是另一个名为 BlockEntranceButtons 的属性?这会产生某种逻辑意义——一组按钮用于 3 个不同的入口?
-
是的,这就是我的意思,如果没有清楚地表达这一点,对不起
标签: javascript json asp.net-mvc vb.net