Friday, 15 June 2012

c# - Posting an array from view to controller using jQuery -


  फ़ंक्शन myItemsViewModel (ItemID, GroupID, ItemName, Quantity) {this.ItemID = ItemID; This.GroupID = GroupID; This.ItemName = ItemName; यह। मात्रा = मात्रा;  

}

और नियंत्रक पर पोस्ट करने के लिए मेरे पास कोड है

  var CreateRecord = function () {var नाम = $ .trim ($ ( "# divCreate") लगता है ( "# txtName") वैल ()।।); Var विभाग = $ .ट्रम ($ ("# divCreate")। ("# TxtDepartment") खोजें। Val ()); Var आइटम सूची = []; $ ('# MyDynamicTable')। ('Tr')। प्रत्येक (फ़ंक्शन () {var पंक्ति = $ (यह); var itemName = $ .trim (row.find ("। ItemName इनपुट")। Val () ); Var itemQty = $ .trim (row.find ("। ItemQty इनपुट")। Val ()); var myItems = new myItemsViewModel ("", "", itemName, itemQty); ItemsList.push (myItems);} ); Var obj = नया myRecordEntryViewModel ("", नाम, विभाग, आइटम सूची); Var viewmodel = JSON.stringify (obj); $। एजेक्स ({प्रकार: 'पोस्ट', कैश: गलत, डेटाटाइप: 'html', डेटा: व्यू मॉोडेल, हेडर: GetRequestVerificationToken (), कंटेंट टाइप: 'एप्लिकेशन / जेसन; वर्णसेट = यूटीएफ -8', यूआरएल: '/' + आभासीडियरीरी + '/ रिकॉर्डएन्टर्री / सेव', सफलता: फ़ंक्शन (डेटा) {$ ("# डिवमैस्टर")। Html (डेटा); वापसी वापस;}, त्रुटि: फ़ंक्शन (msg) {चेतावनी ("त्रुटि दर्ज करने का रिकॉर्ड अनुरोध! ");}}); }  

लाइन var viewmodel = JSON.stringify (obj) पर; , ViewModel के सभी मान हैं जो मैं अपने ItemsList सरणी चर

समस्या मेरे आइटम सूची सरणी नियंत्रक में शून्य के रूप में आ रही है। नाम और विभाग सही पारित मूल्यों के माध्यम से आ रहे हैं।

नीचे मेरा नियंत्रक कोड है

कक्षा

  सार्वजनिक वर्ग myRecordEntryViewModel {सार्वजनिक लंबे आईडी {प्राप्त करें; सेट; } सार्वजनिक स्ट्रिंग नाम {get; सेट; } सार्वजनिक स्ट्रिंग विभाग {get; सेट; } सार्वजनिक स्ट्रिंग [] आइटम सूची {प्राप्त; सेट; [NoCache] सार्वजनिक कार्यवाही सहेजें (myRecordEntryViewModelViewModel) [ActionContent] {// यहाँ देखेंमॉडेल.आइटम लिस्ट रिक्त है, अगर मैं भूल सकता / सकती हूं (यह। सेवएन्ट्री (देखेंमॉडेल .नाम, देखेंमॉडेल। डिपार्टमेंट, देखेंमॉडेल.आइटम लिस्ट)) {} इसे वापस लौटाएं। देखें (); }  

मुझे आश्चर्य है कि क्यों viewModel.ItemsList नियंत्रक में शून्य के रूप में आ रहा है अभी तक यह jQuery से पोस्ट के दौरान मूल्य है।

आप आइटम सूची में आइटम के लिए एक वर्ग बनाना चाहिए (सी #)

  सार्वजनिक वर्ग आइटम {सार्वजनिक स्ट्रिंग ItemName {get; सेट; } सार्वजनिक int मात्रा {प्राप्त करें; सेट; }}  

और फिर व्यूमोडाल वर्ग

  सार्वजनिक वर्ग myRecordEntryViewModel {सार्वजनिक लंबे आईडी {get; सेट; } सार्वजनिक स्ट्रिंग नाम {get; सेट; } सार्वजनिक स्ट्रिंग विभाग {get; सेट; } // सार्वजनिक स्ट्रिंग [] आइटम सूची {प्राप्त करें; सेट; } सार्वजनिक सूची & lt; आइटम & gt; आइटम सूची {प्राप्त करें; सेट;}}  

नियंत्रक आपके अनुरोध से मॉडल सूची को मॉडल में मैप नहीं कर सकता क्योंकि एक स्ट्रिंग की सूची है और अन्य ऑब्जेक्ट की सूची है।


No comments:

Post a Comment