मैं एएसपी.नेट एमवीसी में एक एचटीपी पोस्ट का उपयोग कर अजाक्स कॉल करने के लिए jQuery का उपयोग कर रहा हूं। मैं मूल्यों का एक शब्दकोश पास करने में सक्षम होना चाहता हूं।मैं jQuery/Ajax से ActionResult विधि में पैरामीटर के रूप में एक शब्दकोश को कैसे पास करूं?
सबसे नज़दीकी चीज जो मैं सोच सकता था वह स्ट्रिंग्स की बहु-आयामी सरणी में गुजरना था, लेकिन परिणाम जो वास्तव में एक्शनआरसल्ट विधि में पास हो जाता है वह एक आयामी स्ट्रिंग सरणी है जिसमें "कुंजी/मान" की स्ट्रिंग कॉन्सटेनेशन होती है "जोड़ी।
public ActionResult AddItems(string[] values)
{
// do something
}
यहाँ मैं कैसे 'का एक उदाहरण है:
"id,200"
यहाँ मेरी ActionResult विधि का एक उदाहरण है:
उदाहरण के लिए नीचे दिए गए "मूल्यों" सरणी में पहला आइटम नीचे मान मैं jQuery से विधि को कॉल कर रहा हूं:
$.post("/Controller/AddItems",
{
values: [
["id", "200"],
["FirstName", "Chris"],
["DynamicItem1", "Some Value"],
["DynamicItem2", "Some Other Value"]
]
},
function(data) { },
"json");
क्या कोई जानता है कि एक शब्दकोश को कैसे पास किया जाए एक ऐरे के बजाय jQuery से ActionResult विधि से इंजेक्शन?
मैं वास्तव में इस तरह मेरी ActionResult परिभाषित करना चाहते हैं:
public ActionResult AddItems(Dictionary<string, object> values)
{
// do something
}
कोई सुझाव?
अद्यतन: मैंने मूल्य के भीतर एक अल्पविराम में गुजरने की कोशिश की और मूल रूप से स्ट्रिंग पार्सिंग का उपयोग करके कुंजी/मूल्य जोड़ी को वास्तव में पार्स करना असंभव बना देता है।
पास इस: इस में
values: [
["id", "200,300"],
["FirstName", "Chris"]
]
परिणाम:
values[0] = "id,200,300";
values[1] = "FirstName,Chris";
मुझे नहीं लगता कि वहाँ है.मुझे ऐसा करने के लिए गलत हो सकता है एक तरीका है, लेकिन यह डेटा एक के रूप में में पारित कर दिया पार्स करने के लिए तुच्छ हो जाएगा स्ट्रिंग सरणी, और AddItems विधि के अंदर स्वयं को शब्दकोश बनाएं। –
यह सुनिश्चित नहीं है कि मूल्यों के भीतर किसी भी अल्पविराम के कारण कौन से पार्सिंग समस्याएं होंगी। –
आखिर में मैंने इसे समझ लिया, धन्यवाद जिन्होंने सभी सुझाव दिए! मैंने अपना अंतिम समाधान नीचे दिए गए उत्तर के रूप में जोड़ा। जैसे ही एसओ मुझे देता है, मैं इसे सही उत्तर के रूप में चिह्नित करूंगा। सबको धन्यवाद! –