के साथ जटिल ऑब्जेक्ट को बांधें, मैं एक GET अनुरोध में एक एमवीसी एक्शन विधि में uri में नेस्टेड सरणी के साथ एक जटिल ऑब्जेक्ट भेजना चाहता हूं।[FromUri] विशेषता का उपयोग करना - नेस्टेड सरणी
पर विचार करें निम्नलिखित कोड:
public ActionResult AutoCompleteHandler([FromUri]PartsQuery partsQuery){ ... }
public class PartsQuery
{
public Part[] Parts {get; set; }
public string LastKey { get; set; }
public string Term { get; set; }
}
$.ajax({
url: "Controller/AutoCompleteHandler",
data: $.param({
Parts: [{ hasLabel: "label", hasType: "type", hasIndex : 1 }],
LastKey : "Last Key",
Term : "Term"
}),
dataType: "json",
success: function(jsonData) { ... }
});
यह सिर्फ ठीक काम करता है और सही ढंग से MVC वेब एपीआई में डिफ़ॉल्ट मॉडल बांधने की मशीन का उपयोग कर बांधता है।
हालांकि, नीचे सादा MVC नहीं WebAPI और डिफ़ॉल्ट मॉडल बांधने की मशीन टूट जाता है करने के लिए इस स्विच और नेस्टेड सरणी में वस्तुओं पर गुण बाध्य नहीं कर सकते हैं:
दृश्य सूची
partsQuery != null //Good
--LastKey == "Last Key" //Good
--Term == "Term" //Good
--Parts[] != null //Good
----hasLabel == null //Failed to bind
----hasType == null //Failed to bind
----hasIndex == 0 //Failed to bind
मैं चाहूँगा यह जानने के लिए कि यह सादा एमवीसी में क्यों टूट जाता है और FromUriAttribute
कैसे इस वस्तु को सादा एमवीसी
क्या होता है यदि आप 'भाग [] पार्ट्स' को 'आईसीओलेक्शन पार्ट्स' में बदलते हैं तो क्या होता है? और क्या आप 'भाग' के लिए कक्षा परिभाषा दिखा सकते हैं? –
अब कोशिश कर रहा है। भाग सार्वजनिक के साथ सरल पीओसीओ है {प्राप्त करें; सेट; } props – parliament
क्या 'भाग' में पैरामीटर रहित कन्स्ट्रक्टर है? –