2009-02-12 18 views
5

मेरे पास एक परिदृश्य है जिस पर मैं फंस गया हूं - मेरे पास एक डोमेन ऑब्जेक्ट है जिसमें से जुड़ी ऑब्जेक्ट्स का संग्रह है। इस तरह कुछ:एएसपी.नेट एमवीसी - एक फॉर्म में एकाधिक ऑब्जेक्ट्स को संभालना

public class Person 
{ 
    public string Name { get; set; } 
    public IList<PhoneNumber> PhoneNumbers {get; set; } 
    public IList<Address> Addresses { get; set; } 
} 

यूआई क्लाइंट चाहता है कि जोड़ने और संपादित करने के लिए एक इनपुट इनपुट हो। उपयोगकर्ता प्रत्येक व्यक्ति के लिए कई फोन/पते पर 0 दर्ज कर सकता है। मैं मूल्यों के संग्रह को नियंत्रक को वापस पोस्ट करने में कैसे संभाल सकता हूं?

मैं कुछ दृष्टिकोणों के बारे में सोच सकता हूं, लेकिन वे सभी क्रूर बल लगते हैं और बहुत ही सुरुचिपूर्ण नहीं हैं। क्या इस तरह की समस्या को संभालने के लिए कोई अच्छा अभ्यास है?

उत्तर

0

अतीत में मैंने इसके लिए रेलवे सम्मेलन का उपयोग किया है।

<input name="Parent[childObjectType][serial_number]" type="textbox" value="" /> 
अपनी स्थिति के लिए

तो यह

<input name="Person[PhoneNumber][1]" type="TextBox" value="555-1212" /> 
<input name="Person[PhoneNumber][2]" type="TextBox" value="555-555-1212" /> 

और आप धारावाहिक की संख्या को बढ़ाना और जावास्क्रिप्ट में तत्व को दोहराने कई पाने के लिए कर सकते हैं, और अपनी कार्रवाई में एक formCollection जो आप के लिए एक रास्ता दे देंगे का उपयोग इन तत्वों को प्राप्त करें।

एमवीसी टीम से डिफ़ॉल्ट इस ऑपरेशन के लिए मॉडलबिंडर और डॉट सिंटैक्स का उपयोग करना है। हालांकि यह jquery और अन्य जावास्क्रिप्ट ढांचे बाल्क बनाता है।

0

मैं JSON.NET का उपयोग कर नियंत्रक कार्रवाई में जटिल प्रकारों को पोस्ट करने के लिए जेसन और jQuery का उपयोग शुरू कर रहा हूं और सर्वर पक्ष पर एक जेसनफ़िल्टर जो स्वचालित रूप से आपकी जेसन ऑब्जेक्ट लेता है और इसे समकक्ष सी # प्रकार में क्रमबद्ध करता है। मैंने इसे एक बहुत ही साफ समाधान और परीक्षण करने में आसान पाया है। आप इसे पोस्ट करने के तरीके पर शुरू करने के लिए डाउनलोड करने के लिए नमूना कोड के साथ इस पोस्ट को देख सकते हैं। यह बहुत सीधे आगे है।

http://blogger.forgottenskies.com/?p=252

3

यह एक विशेष "फ़ॉर्म लेआउट" का उपयोग करके ढांचे द्वारा समर्थित है। फिल हैक के पास इस पर एक लेख है, check this out

स्कॉट हंसेलमैन (http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx) संपादित करें इस पर एक अपडेट पोस्ट किया गया है। इसके अलावा आरसी 1 में ऐसा लगता है कि (पिछली रात इस माईसेल में भाग गया) कि इंडेक्स को 0-आधारित और लगातार बढ़ने की आवश्यकता है (कम से कम यदि आप आईलीस्ट के खिलाफ "बाध्यकारी" हैं)

संपादन 2 लिंक काम नहीं कर रहा

0

हंसेलमैन के पद में उल्लेख किया गया है कि वह लिखता है कि आपको इंडेक्स की आवश्यकता नहीं है, आपके पास इनपुट बॉक्स के लिए एक ही नाम है और इसमें एरे पैरामीटर है और यह काम करता है।

संबंधित मुद्दे