एएसपी.नेट एमवीसी 3 प्राप्त करने में समस्याएं मेरे जटिल JSON ऑब्जेक्ट को बांधने के लिए एक सूची है।एमवीसी 3 कॉम्प्लेक्स जेएसओएन सूची बाध्यकारी
यहां मेरी वस्तुओं के लिए संरचना है।
public class PageModel
{
public PageModel() { }
public CustomObject1 CustomObject { get; set; }
public IEnumerable<CustomObject2> Objects { get; set; }
}
public class CustomObject1
{
public CustomObject1() { }
[Required]
public int CustomId1 { get; set; }
public string CustomName { get; set; }
}
public class CustomObject2
{
public CustomObject2() { }
[Required]
public int Custom2Id { get; set; }
public CustomObject3 SubItem { get; set; }
public int SubItemId { get; set; }
}
आप CustomObject3
मान सकते हैं समान संरचना की है - अभी तक एक और बना वर्ग नकल करने की कोई जरूरत नहीं है, इसलिए मैं समझ आप अपनी कल्पना :)
उपयोग कर सकते हैं यहाँ जावास्क्रिप्ट/jQuery पोस्ट कॉल बनाता है (मान सभी जे एस ऊपर यह सही डेटा प्रदान करता है के लिए अग्रणी):
//$obj1 has all data for the first object
var firstObj = { };
firstObj.CustomId1 = $obj1.Id;
firstObj.CustomName = $obj1.Name;
var i = 0;
//$objects is an array with all the data
$.each($objects, function() {
objsArray[i] = {
Custom2Id: $(this).Id,
SubItemId: $(this).itemId
};
++i;
});
$.ajax({
type: 'POST',
url: '/Action/Method',
data: { CustomObject: firstObj, Objects: objsArray },
//Success/error handlers here
});
और अंत में (मुझे पता है, काफी कुछ code) यहाँ विधि का अवलोकन मेरे पास है:
public class ActionController : Controller {
public JsonResult Method(PageModel model) {
//Gets here - model.CustomObject is filled correctly, and model.Objects has a correct count of whatever data I passed to the method - but all of the properties are empty!
}
}
जैसा कि मैंने कहा था, पहली वस्तु भरी है और जब मैं डीबग करता हूं और कदम उठाता हूं तो सभी डेटा वहां होता है। यदि मैं JSON ऑब्जेक्ट में Objects
सरणी में दो ऑब्जेक्ट्स पास करता हूं, तो मुझे नियंत्रक में Count
2 में से 2 देखते हैं, लेकिन Custom2Id
और SubItemId
खाली हैं। क्या देता है?
जब मैं $.ajax
कॉल में 'application/json'
के contentType
निर्दिष्ट करता हूं, तो एमवीसी पास होने वाले डेटा के बारे में शिकायत करता है। एमवीसी विधि में model
पैरामीटर को दो अलग-अलग पैरामीटर में विभाजित करने का भी प्रयास किया, लेकिन इससे मदद नहीं मिलती है।
किसी भी मदद की बहुत सराहना की जाती है - यह मुझे स्टंप कर दिया गया है!
धन्यवाद इससे बहुत मदद मिली :)! – Rookian
घंटों के बाद पूरी तरह से कार्यात्मक कोड की तलाश में, यह मेरी समस्या हल हो गई! धन्यवाद!! –