asp.net mvc 2 एंटरप्राइज लाइब्रेरी सत्यापन ब्लॉक के लिए एस्पनेट एमवीसी 2 क्लाइंट सत्यापन कार्यान्वयन




asp.net-mvc-2 enterprise-library (2)

मुझे एमवीसी 2 में सर्वर मान्यता के लिए एंटएलब वैलिडेशन ब्लॉक का उपयोग करने के बारे में एक बहुत अच्छा लेख मिला है। लेकिन जैसा कि वहाँ बताया गया है

EntLib के सत्यापन अनुप्रयोग ब्लॉक के वर्तमान डिजाइन समग्र पैटर्न का उपयोग करता है; अर्थात, जब हम किसी ऑब्जेक्ट के लिए सत्यापन के लिए पूछते हैं, तो वह एक एकल सत्यापनकर्ता ऑब्जेक्ट वापस लौटाता है जिसमें सभी सत्यापन कार्य की सूची होती है। हालांकि यह सामान्य उपयोग परिदृश्य से बहुत सुविधाजनक है, दुर्भाग्यपूर्ण साइड इफेक्ट यह है कि हम यह देखने के लिए "अंदर की ओर झुकना" नहीं कर सकते हैं कि व्यक्तिगत सत्यापन क्या कर रहे हैं, और इसलिए उचित क्लाइंट-साइड सत्यापन संकेत नहीं उत्पन्न कर सकते हैं ।

तो EntLib के लिए क्लाइंट साइड सत्यापन कैसे लागू करना संभव है? क्या वहां काम है?


एलेक्सी, :-) मुझे सत्यापन कार्य के लिए अपना स्वयं का कार्यान्वयन है जो कि EntLib से संबंधित नहीं है, लेकिन अवधारणा से बहुत ही समान है। डेवलपर के लिए यह निम्नलिखित की तरह दिखता है:

   ValidationFactory.AddRule<IPerson>(
     x => string.IsNullOrEmpty(x.FirstName) &&
          string.IsNullOrEmpty(x.LastName),
     "Person should have a name", "validation set 1");
   IPerson p = UnityHelper.DefaultContainer.Resolve<IPerson>();
   ValidationResults res = ValidationFactory.Validate<IPerson>(p,"validation set 1");
   if(!res.IsValid)
   {
     foreach (ValidationResult vr in res)
     {
       var msg= vr.Message;
       var validated_instance = vr.Target;
       var Validator_instance = vr.Validator;
     }
   }   

यदि आप इसमें रुचि रखते हैं तो मुझे बताएं, मैं इसे अपने मौजूदा प्रोजेक्ट से अलग समाधान में कटौती कर दूंगा।


इसलिए मुझे इसके बारे में कुछ भी नहीं मिल सका, इसलिए मैंने इसे स्वयं को लागू करने के लिए codeplex http://elvalweb.codeplex.com/ पर प्रकाशित किया।





validation