2011-12-06 7 views
14

एचटीएमएल फॉर्म को नॉकआउट जेएस और jQuery टेम्पलेट्स का उपयोग करके नियंत्रित किया जाता है। फ़ील्ड मान्य करने के लिए मूल jQuery सत्यापन उपयोग में है। फॉर्म JSON को क्रमबद्ध हो जाता है और AJAX का उपयोग कर एमवीसी नियंत्रक कार्रवाई में सबमिट किया जाता है। एमवीसी नियंत्रक कार्रवाई सर्वर-साइड मॉडल सत्यापन करता है, मॉडलस्टेट में त्रुटियों को जोड़ता है। ModelState में त्रुटियों के माध्यम से पुनरावृत्ति और JSON प्रतिक्रिया में त्रुटियों की कुंजी/मान संग्रह करने के लिए उन्हें जोड़ने -नॉकआउट जेएस + एमवीसी + सर्वर-साइड मॉडल सत्यापन का उपयोग कर त्रुटियों को प्रदर्शित करें?

  1. ग्राहक के लिए उन त्रुटियों को वापस जाने के लिए सबसे अच्छा अभ्यास क्या है?

  2. आप ग्राहक पर त्रुटियों को कैसे प्रदर्शित करते हैं? मॉडल पर प्रासंगिक फ़ील्ड में त्रुटियों की कुंजी/मूल्य संग्रह को आप कैसे बाध्य करते हैं?

कहें कि मॉडल पर एक "नाम" फ़ील्ड है, जिसमें jQuery टेम्पलेट द्वारा प्रस्तुत एक संबंधित टेक्स्टबॉक्स है। त्रुटियों के संग्रह में "नाम" फ़ील्ड के लिए त्रुटि कैसे लेती है और "नाम" टेक्स्टबॉक्स के नीचे त्रुटि संदेश प्रदर्शित करती है?

उत्तर

5

वहाँ ko.js (found here) आप मदद कर सकता है के लिए दो सत्यापन प्लगइन,

Knock-Knock validation

Knockout Validation

आप इंजेक्शन ग्राहक के पक्ष MVC unobstrsive सत्यापन आंकड़ों के उन में से एक तार कर सकता है।

+10

दूसरे विकल्प (नॉकआउट सत्यापन) को देखने के बाद मैं सोच रहा था कि आप एमवीसी व्यू मॉडल से प्रमाणीकरण विशेषताओं को नॉकआउट में .extend() विधि में कैसे मैप करने में सक्षम होंगे? – Ryan

4

यदि आप एमवीसी का उपयोग कर रहे हैं, तो अविभाज्य जावास्क्रिप्ट आपके मॉडल में सत्यापन सेट के आधार पर क्लाइंट साइड सत्यापन करता है। आपको कोई अतिरिक्त कॉन्फ़िगरेशन करने की आवश्यकता नहीं है।

ऐसा कहकर, जावास्क्रिप्ट और नॉकआउटज का उपयोग कर मॉडल के आधार पर क्लाइंट साइड सत्यापन करने का कोई सीधा तरीका नहीं है।

क्लाइंट पक्ष पर ऐसा करने के कुछ तरीके हैं।

  1. Jquery या कोई अन्य सत्यापन ढांचे सत्यापन कर सकते हैं। लेकिन आपको टैग होना चाहिए। इस दृष्टिकोण के साथ लाभ यह है कि आपका कोड बनाए रखना आसान और आसान होगा।
  2. आप जावास्क्रिप्ट का उपयोग कर क्लाइंट साइड कस्टम सत्यापन कर सकते हैं और नॉकआउट का उपयोग करके सत्यापन संदेश बांध सकते हैं। यह आपको प्रत्येक इनपुट चर के लिए त्रुटि लेबल बनाने की आवश्यकता है। इस दृष्टिकोण के साथ लाभ यह है कि आपके पास पूर्ण नियंत्रण होगा कि कैसे और क्या प्रदर्शित किया जाना है।

व्यक्तिगत रूप से, मुझे हाल ही की परियोजनाओं में से एक में समान आवश्यकता थी और मैंने इसे कस्टम सत्यापन जांच और त्रुटि लेबल का उपयोग करके हासिल किया।

संबंधित मुद्दे