मेरे पास एक एएसपी.नेट एमवीसी 2 प्रोजेक्ट है जिसमें मैंने वेब पेज फॉर्म से डेटा प्राप्त करने के लिए डेटा ट्रांसफर ऑब्जेक्ट बनाया है। इस फॉर्म में चेकबॉक्स के दो समूह हैं। मैं यह सुनिश्चित करने के लिए ऑब्जेक्ट को सत्यापित करना चाहता हूं कि प्रत्येक समूह में कम से कम एक चेकबॉक्स चेक किया गया हो।एक एएसपी.नेट एमवीसी सत्यापनकर्ता यह सुनिश्चित करने के लिए कि कम से कम एक चेकबॉक्स चेक किया गया है
मैं सर्वर की ओर से सत्यापन कर रहा हूं ताकि उपयोगकर्ता किसी भी क्लाइंट-साइड सत्यापन के आसपास हैक करने में सक्षम न हो। (मैं बाद में jQuery के साथ क्लाइंट-साइड सत्यापन जोड़ूंगा; यह आसान है।)
मेरी समझ यह है कि मुझे अपने डेटा ट्रांसफर ऑब्जेक्ट क्लास के लिए अपना कस्टम वैलिडेशन एट्रिब्यूट बनाना है, लेकिन मुझे समझ में नहीं आता कि कैसे बनाना और उपयोग करना है एक यह सुनिश्चित करने के लिए कि उनमें से कम से कम एक सत्य है, चेकबॉक्स गुणों की मनमानी सूची स्वीकार कर सकता है।
[AtLeastOneCheckbox("set1check1", "set1check2", "set1check3",
ErrorMessage = "You must check at least one checkbox in set 1.")]
[AtLeastOneCheckbox("set2check1", "set2check2", "set2check3", "set2check4", "set2check5",
ErrorMessage = "You must check at least one checkbox in set 2.")]
public class MyFormDTO
{
...
}
क्या AtLeastOneCheckboxAttribute के कार्यान्वयन दिखाई देगा: मैं मैं इस तरह विशेषताओं फोन करना होगा अनुमान लगा रहा हूँ?
या वहां एक अलग तरह से है कि मैं सत्यापन के इस प्रकार करना चाहिए है?
इसके अलावा, मैं सोच रहा हूँ क्यों माइक्रोसॉफ्ट MVC सब कुछ के लिए यह 'विशेषता' सत्यापन प्रणाली में मुझे धक्का है। यदि मैं RequiredAttribute और StringLengthAttribute और अन्य सत्यापन विशेषताओं द्वारा किए गए चेक का उपयोग करता हूं, तो मैं प्रत्येक प्रॉपर्टी पर रखता हूं, और फिर मैं अपनी ऑब्जेक्ट में एक IsValid() विधि भी जोड़ता हूं जो इस ऑब्जेक्ट पर गुणों पर अन्य जांच करता है कि यह मान्य है या नहीं, क्या मॉडलस्टेट मेरे IsValid() विधि के परिणाम को प्रतिबिंबित करने का कोई तरीका है? –