asp.net mvc - Model Validation with dictionary -


बोलो मेरे पास ऐसा मॉडल है:

  सार्वजनिक वर्ग MyViewModel {// कुछ गुण सार्वजनिक स्ट्रिंग MyString {get; set;} सार्वजनिक शब्दकोश & lt; स्ट्रिंग, स्ट्रिंग & gt; कस्टम प्रॉपर्टीज़ {get; set;}}  

और मैं इस तरह की डिक्ट्री प्रॉपर्टी पेश कर रहा हूं:

  & lt;% = Html.EditorFor (m = & gt ; M.CustomProperties ["someproperty"])% & gt;  

सभी अच्छी तरह से काम कर रहे हैं, हालांकि मैंने इस शब्दकोश के गुणों को मान्य करने के लिए एक कस्टम सत्यापनकर्ता कार्यान्वित किया है, लेकिन जब ModelValidationResult लौट रहा है तो मुझे सदस्य का नाम नहीं मिल सकता है सही ढंग से संदर्भित (जो कि कस्टमप्रॉपर्टीज़ [कुछ प्रॉपर्टी] मेरा मानना ​​है)। सूची में सभी आइटम जो गुण हैं, उनकी त्रुटियों के लिए सही तरीके से बाध्य हैं (मुझे पाठ बॉक्स में त्रुटि वर्ग चाहिए ताकि मैं उसे उजागर कर सकूं)।

कस्टम वैदिकक के लिए अब तक मेरा कोड है < / P>

  सार्वजनिक वर्ग CustomValidator: ModelValidator {सार्वजनिक कस्टम (ModelMetadata मेटाडाटा, नियंत्रक कंटैंट नियंत्रक कंटबॉक्स): आधार (मेटाडेटा, नियंत्रक कंसल्टेंट) {} सार्वजनिक ओवरराइड IEnumerable & lt; ModelValidationResult & gt; मान्य करें (ऑब्जेक्ट कंटेनर) {यदि (मेटाडेटा.प्रॉपर्टी नाम। एक्लल्स ("माइस्स्ट्रिंग", स्ट्रिंग कॉमपारियन। ऑर्डिनल इग्नेोर कैस)) {उपज रिटर्न नया मॉडल सत्यापन () {संदेश = "सामान्य प्रॉपर्टी सत्यापनकर्ता कार्य करता है !!"}; } और अगर (मेटाडेटा। प्रॉपर्टी नाम। एक्लॉल्स ("कस्टमप्रॉपर्टीज़", स्ट्रिंग कॉमपरिजन। ऑर्डिनल इग्नोर केस)) {उपज रिटर्न नए मॉडल वैलिडेशन रिजल्ट () {सदस्यनाम = "कस्टम प्रॉपर्टीज़ [कुछ प्रॉपर्टी}", संदेश = "नहीं!" };  

ऐसा लगता है जैसे कुछ MemberName संपत्ति को आगे बढ़ा रहे हैं, और वहां जो भी मैंने दिया है

चीयर्स, अमर

ऐसा प्रतीत होता है कि आप सत्यापन की तुलना में अधिक कठिन बना रहे हैं। क्या आपने डेटाएनेटोटेशन पर एक नज़र डाला है जो ढांचे में बनाया गया है? । यह मॉडल की मान्यता करने का एक बहुत अच्छा (और आसान) तरीका है।


Comments