Tuesday 15 July 2014

asp.net mvc - Unobtrusive client validation data attributes are not rendered for nested property rules -


FluentValidation 4.4 का उपयोग करते हुए, निम्न नियम इनपुट क्षेत्रों पर सही निर्विरोध सत्यापन डेटा विशेषताओं का उत्सर्जन करते हैं:

 < कोड> नियमफ़ोर (ई = & gt; ई। प्राथमिक संपर्क) .NotEmpty ();   

निम्न HTML का प्रतिपादन:

  & lt; इनपुट वर्ग = "टेक्स्ट-बॉक्स एकल-पंक्ति k-textbox इनपुट-सत्यापन-त्रुटि" डेटा-वैल = "सच" डेटा-वैल-आवश्यक = "'प्राथमिक संपर्क' खाली नहीं होना चाहिए।" Id = "प्राथमिक संपर्क" नाम = "प्राथमिक संपर्क" प्रकार = "टेक्स्ट" मान = "" & gt;   

हालांकि, एक नेस्टेड प्रॉपर्टी के साथ कोई नियम किसी भी सत्यापन डेटा विशेषताओं का उत्सर्जन नहीं करता है:

  RuleFor (e = & gt; e.Company.Name) खाली नहीं();   

निम्न HTML प्रस्तुति:

  & lt; इनपुट वर्ग = "टेक्स्ट बॉक्स एकल-पंक्ति k-textbox" id = "Company_Name" name = " Company.Name "प्रकार =" टेक्स्ट "मान =" "& gt;   

मुझे क्या याद आ रहा है?

यह थोड़ा सा मिल सकता है मामले में ढलान है कि आपको बाल ऑब्जेक्ट में प्रत्येक प्रॉपर्टी पर मान्य होना चाहिए। मैं उनके लिए क्या कर सकता हूं।

  [मान्यक (टाइपफ (पेरेंट ऑब्जेक्ट वैलिडेटेटर)) सार्वजनिक वर्ग के माता-पिता {सार्वजनिक स्ट्रिंग प्राइमरी कॉन्टैक्ट {प्राप्त; सेट;} सार्वजनिक कंपनी कंपनी {सेट; }} [मान्यकर्ता (टाइपफ (कंपनी वाइडिटेटर))] // यह एक आवश्यक है! // अन्यथा कोई डेटा-वैल-आवश्यक सार्वजनिक वर्ग की कंपनी को निर्दिष्ट नहीं किया जाएगा {सार्वजनिक स्ट्रिंग नाम {get; set;}}   

बाल ऑब्जेक्ट के लिए एक मान्यकर्ता सेट करें। < प्री> पब्लिक क्लास कंपनी वैलिडेटेटर: एब्सट्रेट वैलिडेटेटर & lt; कंपनी & gt; {सार्वजनिक कंपनीविदेटर () {RuleFor (कंपनी = & gt; company.Name) .NotEmpty (); // etc}}

फिर, अपने अभिभावक ऑब्जेक्ट में, आप उस ऑब्जेक्ट को ऐसे वैदिकेटर को ऐसे ही सेट कर सकते हैं।

  सार्वजनिक वर्ग ParentObjectValidator: AbstractValidator & lt ; ParentObject & gt; {सार्वजनिक जनक ऑब्जेक्ट () (RuleFor (ई = & gt; ई। प्राथमिक संपर्क) .NotEmpty (); रूलफॉर (ई = & gt; ई। कॉम्पैनी) .सेट वैयलेटर (नई कंपनीवैलिडेटेटर ()); }}   

यह आपको सही दिशा में बताएगा!

No comments:

Post a Comment