c# - Get posted selected item from DropDownList in ASP MVC -
नियंत्रक
सार्वजनिक कार्यवाही बनाएँ () {वापसी दृश्य (नया पृष्ठदृश्यमॉडल ()); } [एचटीटीपी पोस्ट] पब्लिक एक्शन रिजल्ट बनाएं (पेज पेज) {try {repPage.Add (पेज); repPage.Save (); वापसी पुनर्निर्देशित करेंएक्शन ("संपादित करें"); } पकड़ {वापसी देखें (नया पृष्ठदृश्यमॉडेल ()); }}
PageViewModel
सार्वजनिक वर्ग PageViewModel {सार्वजनिक पृष्ठ पृष्ठ {get; सेट; } सार्वजनिक सूची & gt; टेम्पलेट & gt; टेम्पलेट {प्राप्त करें; सेट; } निजी टेम्पलेट रिपोजिटरी repTemplates = नया TemplateRepository (); सार्वजनिक पृष्ठदृश्य मॉडेल () {पेज = नया पृष्ठ (); टेम्पलेट्स = रीपटेम्पलेट्स.गेटअल्प टेम्प्लेट्स ()। ToList (); }}
मेरे दृश्य के भाग
& lt;% @ पृष्ठ शीर्षक = "" भाषा = "सी #" मास्टरपृष्ठफ़ाइल = "~ / दृश्य / साझा / साइट। मेस्टर" इनहेरिट्स = "सिस्टम। वेब। एमवीसी दृश्यपेज & lt; वेबसाइट.मॉडल्स.पृष्ठव्यूमोडेल & gt;" & Gt%; & Lt;% = Html.TextBoxFor (मॉडल = & gt; model.Page.Name, नया {@style = "width: 300px;"})% & gt; & Lt;% = Html.DropDownListFor (मॉडल = & gt; model.Page.Template, नया SelectList (मॉडल। टेम्पलेट्स, "आईडी", "नाम"), नया {@style = "width: 306px;"})% & gt; खाका: आईडी नाम
पृष्ठ: आईडी का नाम TemplateID मेरी ड्रॉपडाउन सूची ठीक से में आबादी है दृश्य, वहां कोई समस्या नहीं है मेरी समस्या यह है कि मुझे ड्रॉपडाउन सूची से चयनित मान नहीं मिलता।
मेरे नियंत्रक में मैंने संपादित करें में एक ब्रेकपॉइंट डाल दिया और देखें कि नाम
टेक्स्टबॉक्स उस मूल्य के साथ पॉपुलेटेड है जिसे मैं उसमें टाइप करता हूं लेकिन ड्रॉपडाउन सूची से चुने गए को रिक्त करने के लिए सेट किया गया है।
क्या मुझे कुछ याद आ रहा है, मैंने सोचा था कि इसे सही Template
को में सेट करना चाहिए > पेज
ऑब्जेक्ट क्या मैं गलत कर रहा हूं?
केवल एक ही चीज़ जो आप वेब पेज से वापस आती है I चयनित टेम्पलेट डिफ़ॉल्ट मॉडल बाइंडर नहीं जानता कि यह आईडी कैसे लें और अपने रिपॉजिटरी से सही टेम्पलेट ऑब्जेक्ट पुनर्प्राप्त करें। ऐसा करने के लिए आपको कस्टम मॉडल बाइंडर को कार्यान्वित करने की आवश्यकता होगी जो डेटाबेस से मान प्राप्त कर सके, एक टेम्पलेट ऑब्जेक्ट का निर्माण कर सके और पेज को आवंटित कर सके। या ... आप इसे अपनी कार्रवाई में मैन्युअल रूप से कर सकते हैं, अपनी टिप्पणियों के अनुसार, आप जानते हैं कि पोस्ट किए गए मूल्यों से टेम्पलेट का आईडी कैसे प्राप्त करें।
Comments
Post a Comment