पर पॉपुलटिंग नहीं है मेरे पास एक मॉडल के साथ एक एएसपी.NET एमवीसी एप्लीकेशन है जो कई परतों को गहराई से संग्रहित करता है।एएसपी.नेट एमवीसी - संग्रह के साथ मॉडल पोस्टबैक
मेरा मानना है कि ऑब्जेक्ट्स बनाने के लिए दृश्य सही ढंग से सेट अप किया गया है, लेकिन जब मैं सर्वर पर फॉर्म पोस्ट करता हूं तो यह मॉडल के भीतर संग्रह को पॉप्युलेट नहीं करता है।
मैं डेटा का एक टुकड़ा जो वर्ग पदानुक्रम इस प्रकार में पाया जाता है है:
person.PersonDetails.ContactInformation[0].Data;
इस वर्ग संरचना LinqToSql द्वारा बनाई गई है, और ContactInformation प्रकार EntitySet<ContactData>
की है।
return View(person);
और दृश्य के भीतर मैं एक रूप है जो कि ऊपर उल्लेख किया क्षेत्र से जुड़े एक नाम के साथ एक एकल पाठ बॉक्स शामिल है:
<%= Html.TextBox("person.PersonDetails.ContactInformation[0].Data")%>
पोस्ट विधि दृश्य मैं निम्नलिखित पारित बनाने के लिए भीतर मेरे नियंत्रक तो इस प्रकार है:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create (Person person)
{
//Do stuff to validate and add to the database
}
यह इस बिंदु जहां मैं के रूप में person.PersonDetails.ContactInformation.Count() == 0 खो जाना है। तो मॉडलबिंडर ने एक संपर्क जानकारी ऑब्जेक्ट बनाया है, लेकिन इसे उस ऑब्जेक्ट के साथ पॉप्युलेट नहीं किया है जिसे इसे इंडेक्स 0.
मेरा प्रश्न दो गुना है: 1. क्या मैंने सही दृष्टिकोण लिया है .. यानी इस काम? 2. कोई भी विचार यह क्यों है कि यह ContactInformation ऑब्जेक्ट को पॉप्युलेट करने में विफल क्यों हो सकता है?
बहुत धन्यवाद, रिचर्ड
धन्यवाद, यह पूरी तरह से काम करता है। मैंने बहुत गहन विरासत के साथ एक उदाहरण की कोशिश की है जो पूरी तरह से अच्छी तरह से काम करता है, लेकिन आप शायद सही हैं कि यह जटिलता में खो रहा है। हालांकि, दो टिप्पणियां, स्पष्टता के लिए: 1. मुझे केवल [बाइंड (उपसर्ग = "व्यक्ति.पर्सन विवरण। संपर्क जानकारी")] संपर्क जानकारी [] जानकारी) और मॉडल ऑब्जेक्ट की इसी सेटिंग की आवश्यकता है। 2. संपर्क जानकारी [] को सही प्रकार के अनुरूप होने के लिए EntitySet होना आवश्यक है। अब उपसर्ग पर कुछ और विवरण देखने के लिए .... आपकी मदद के लिए धन्यवाद। रिचर्ड –
Richbits
नाइस, अभी तक 'उपसर्ग' के बारे में नहीं पढ़ा था! – Ropstah
अच्छा एक .. या आप अपना खुद का कस्टम मॉडल बाइंडर विकसित कर सकते हैं जो समझ जाएगा कि फॉर्म इनपुट से अपने जटिल मॉडल को कैसे प्राप्त किया जाए, क्या आप लिंक या इंपोर्ट साझा कर सकते हैं। अगर आप पहले ही एचवी कर चुके हैं? –