हम जानते हैं कि MVC में, एक CheckBoxFor
एक value="true"
के साथ एक checkbox
और एक value=false
के साथ एक hidden
उत्पन्न होगा। दोनों इनपुट नियंत्रण एक ही नाम साझा करेंगे।JSON डेटा में एक फार्म में चेकबॉक्स को क्रमानुसार कैसे
यह बहुत उचित है क्योंकि फॉर्म अनचेक होने पर फॉर्म गलत मूल्य पोस्ट करने में सक्षम होगा। और जब चेकबॉक्स एक सत्य लौटाता है तो मॉडल बाइंडर छुपा इनपुट को अनदेखा कर देगा।
लेकिन अब मैंने जेएसओएन प्रारूप में वेब डेटा नियंत्रक में फॉर्म डेटा भेजने के लिए प्रपत्र जमा करने के लिए ओवरराइड किया है।
जब फॉर्म डेटा को क्रमबद्ध करते हैं, तो चेकबॉक्स और छिपे हुए तरीके से संबंधों को पार्स करने के लिए कोई तंत्र नहीं है। इसलिए, जब अनचेक किया जाता है, तो यह false
देता है, जो ठीक है। लेकिन जब चेक किया जाता है, तो यह true
के बजाय {true, false}
देता है, क्योंकि serializeArray()
फ़ंक्शन प्रत्येक input
के माध्यम से जाता है और दो मान एक ही नाम पर जाते हैं।
सवाल यह है: इसे सही करने का सबसे अच्छा तरीका क्या है?
संभावित डुप्लिकेट [एएसपी.नेट एमवीसी 4 की वेबएपीआई चेक बॉक्स को सही ढंग से बाध्य नहीं करता है?] (Http://stackoverflow.com/questions/11996285/asp-net-mvc-4s-webapi-does-not-bind- चेक-बक्से-सही ढंग से) –