आह ने इसे गलत समझा।
यदि आपको पता है कि ड्रॉपडाउन संभावित रूप से क्या जोड़ा जा सकता है, तो मेरे पास हमेशा आपके मॉडल पर एक मूल्य होगा। अगर कुछ भी प्राप्त नहीं होता है तो एमवीसी उन्हें डिफ़ॉल्ट मान के रूप में सेट करेगा।
संपादित करें: आप अभी भी रूपों संग्रह एक अधिक कच्चे रास्ते में भीतर नियंत्रकों से
Request.Form.Keys
Request.QueryString.Keys
Request["ExpectedDropdownName"]
बेशक
इन सभी मूल्यों अपने फार्म द्वारा तैनात किया जाएगा का उपयोग कर उपयोग कर सकते हैं, ताकि आप में से एक की पहचान करने के लिए एक तरह से की आवश्यकता होगी उपसर्ग या कुछ की तरह आपके ड्रॉपडाउन। उदाहरण
foreach (var key in Request.Form.AllKeys.Where(k => k.StartsWith("dynamic-dropdown-"))
{
var selectedValue = Request[key];
}
के लिए मैं अभी भी वास्तव में समझने के नहीं आप कैसे गतिशील ड्रॉपडाउन कार्रवाई करने के लिए यदि आप वे क्या होगा पता नहीं है चाहते हैं और यह कुछ समस्याएं हो सकती हैं और मान्यता पूरी तरह से गतिशील और क्लाइंट साइड कर देगा (100% सुरक्षित नहीं)। इससे कुछ सुरक्षा मुद्दे भी सामने आ सकते हैं, लेकिन कुछ सागरियो हैं जहां आप इसका उपयोग कर सकते हैं और मैं मानता हूं कि उनमें से एक है।
यदि ऐसा नहीं है, तो यह न भूलें कि मॉडल के पास एक संपत्ति है, इसलिए इसे वापस पोस्ट करने की आवश्यकता नहीं है।
आप कर सकता है:
public class MyModel
{
[Required]
public string FirstName { get; set; }
public string PossibleDropdown1 { get; set; }
public string PossibleDropdown2 { get; set; }
}
नियंत्रक यह मॉडल पॉप्युलेट करने के लिए सबसे अच्छा है, लेकिन अगर आप कुछ क्षेत्रों रूप से वापस उत्तीर्ण नहीं होते हैं, वे सिर्फ अशक्त हो जाएगा और कार्रवाई अभी भी होगा करना होगा काम।
मैंने इस तरह के अधिक जटिल परिदृश्यों को भी लागू किया है जो माता-पिता मॉडल के बच्चे हैं और सभी नामुमकिन हैं। इसके लिए मैक में संपादक टेम्पलेट्स पर AJAX कॉल के आस-पास कुछ फैंसी काम की आवश्यकता है यह सुनिश्चित करने के लिए कि एमवीसी के लिए उपसर्ग सही है, लेकिन मैं यहां नहीं जाऊंगा।
आप ajax का उपयोग कर –
@COLDTOLD यह एक सर्वर साइड समस्या, ajax नहीं एक समाधान है कि किसी भी प्रभाव –
@Marek Karbarz होता आप ajax –