Tôi đã mảng của tôi dân cư như vậy:Vượt qua danh sách các int từ JavaScript đến C# - Tôi nhận được danh sách, nhưng nó trống; dữ liệu biểu mẫu không được cấu trúc đúng cách?
updateLabels: function() {
var diagrams = _stage.diagramLayer.getChildren();
var componentIDs = new Array();
for (var index = 0; index < diagrams.length; index++) {
componentIDs.push(diagrams[index].componentID);
}
var self = this;
$.ajax({
url: '../PlanView/UpdateDiagrams',
type: 'POST',
data: { ComponentIDs: JSON.stringify(componentIDs), RackInfo: $('#RackInfoSelect').val() },
success: function (data) {
console.log('success');
},
error: function() {
console.log("error");
}
});
},
phía máy chủ tôi có phương pháp này:
[CompressionFilterAttribute]
public JsonResult UpdateDiagrams(List<int> componentIDs, string rackInfo)
{
List<object> diagramInformation = new List<object>(componentIDs.Count());
}
dữ liệu của tôi vì nó đã được thông qua trên mạng:
ComponentIDs:[74,445,732,351,348,347,1123,599,600,1053,350,601,602,603,332,99,877,919,349,348,347,347,349,348]
RackInfo:Equipment Weight
tôi thành công có được RackInfo, nếu tôi thay đổi UpdateDiagrams để mong đợi List<string>
sau đó tôi nhận được một danh sách với một mục trong đó, toàn bộ chuỗi ComponentID.
Tôi đang làm gì không chính xác ở đây?
EDIT: Tôi đang làm việc theo MVC3. Tôi sẽ có thể tận dụng một số loại deserialization tự động khi đi qua bộ điều khiển của tôi, tôi chỉ không chắc chắn như thế nào.
GIẢI PHÁP: Giải pháp là để bọc đối tượng dữ liệu của tôi trong JSON.stringify, không chỉ các thành phầnID. Mặc dù tôi có thể nhận được phía máy chủ biến RackInfo mà không chuyển đổi nó thành JSON.
lẽ 'componentIDs.push (parseInt (sơ đồ [index] .componentID)); '? – MiMo