मैं अपने सरणी इसलिए की तरह ले लिया है:जावास्क्रिप्ट से सी # में इंक की पास सूची - मुझे सूची मिलती है, लेकिन यह खाली है; फॉर्म डेटा ठीक से संरचित नहीं है?
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");
}
});
},
सर्वर साइड मैं इस विधि है:
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
मैं:
[CompressionFilterAttribute]
public JsonResult UpdateDiagrams(List<int> componentIDs, string rackInfo)
{
List<object> diagramInformation = new List<object>(componentIDs.Count());
}
अपने डेटा के रूप में यह नेटवर्क पर भेजी जा रही है सफलतापूर्वक RackInfo प्राप्त करें, अगर मैं List<string>
की अपेक्षा करने के लिए UpdateDiagrams को बदलता हूं तो मुझे इसमें एक आइटम, संपूर्ण कंपोनेंट आईडी स्ट्रिंग के साथ एक सूची मिलती है।
मैं गलत तरीके से क्या कर रहा हूं?
संपादित करें: मैं एमवीसी 3 के तहत काम कर रहा हूं। मेरे नियंत्रक को पास करते समय मुझे कुछ प्रकार के स्वचालित deserialization का लाभ उठाने में सक्षम होना चाहिए, मुझे यकीन नहीं है कि कैसे।
समाधान: समाधान JSON.stringify में, केवल घटक आईडी में, मेरी डेटा ऑब्जेक्ट को लपेटना था। भले ही मैं इसे JSON में परिवर्तित किए बिना RackInfo चर सर्वर-साइड प्राप्त कर सकूं।
हो सकता है कि 'componentIDs.push (parseInt (चित्र [सूचकांक] .componentID)); '? – MiMo