2008-08-25 11 views
9

एक पारंपरिक एमवीसी अनुप्रयोग कोडिंग में, सर्वर-साइड फॉर्म सत्यापन कोडिंग के लिए सबसे अच्छा अभ्यास क्या है? क्या कोड नियंत्रक, या मॉडल परत में है? और क्यों?एमवीसी - फॉर्म सत्यापन (सर्वर-साइड) को कार्यान्वित करने के लिए कहां?

उत्तर

4

विकिपीडिया से:

Model-view-controller (MVC) एक वास्तुशिल्प सॉफ्टवेयर इंजीनियरिंग में प्रयोग किया जाता पैटर्न है। पैटर्न का सफल उपयोग उपयोगकर्ता इंटरफ़ेस विचारों से व्यवसाय तर्क को अलग करता है, जिसके परिणामस्वरूप एक एप्लिकेशन होता है जहां आवेदन की दृश्य उपस्थिति या अंतर्निहित व्यावसायिक नियमों को अन्य को प्रभावित किए बिना संशोधित करना आसान होता है। एमवीसी में, मॉडल आवेदन की जानकारी (डेटा) और डेटा में हेरफेर करने के लिए उपयोग किए जाने वाले व्यावसायिक नियमों का प्रतिनिधित्व करता है; दृश्य उपयोगकर्ता इंटरफ़ेस के तत्वों जैसे पाठ, चेकबॉक्स आइटम, और बहुत आगे के अनुरूप है; और नियंत्रक कुंजीस्ट्रोक और माउस आंदोलनों जैसे उपयोगकर्ता क्रियाओं के मॉडल को संचार से जुड़े विवरणों का प्रबंधन करता है।

इस प्रकार, मॉडल - इसमें एप्लिकेशन और व्यवसाय नियम हैं।

4

मैं पूरी तरह से जोश से सहमत हूं। हालांकि आप नियंत्रक और मॉडल के बीच एक प्रकार की सत्यापन परत बना सकते हैं ताकि अधिकांश सिंटैक्टिकल सत्यापन मॉडल पर पहुंचने से पहले डेटा पर किए जा सकें।

उदाहरण के लिए,

सत्यापन परत दिनांक स्वरूप, राशि प्रारूप, अनिवार्य क्षेत्रों, आदि को मान्य होगा ...

ताकि मॉडल विशुद्ध रूप से व्यापार सत्यापन पर ध्यान केन्द्रित करेगा, एक्स राशि की तरह से अधिक होना चाहिए वाई राशि

0

एमवीसी के साथ मेरा अनुभव अब तक पूरी तरह से रेल के होते हैं।

रेल मॉडल में यह मान्यता 100% है।
अधिकांश भाग के लिए यह बहुत अच्छी तरह से काम करता है। मैं कहूंगा कि 10 बार में से 9 बार आपको इसकी ज़रूरत है।

कुछ ऐसे क्षेत्र हैं जहां आप एक फॉर्म से सबमिट कर रहे हैं, यह आपके मॉडल के साथ ठीक से मेल नहीं खाता है। कुछ अतिरिक्त फ़िल्टरिंग/पुनर्व्यवस्थित हो सकते हैं या इसी तरह।

मुझे मिली स्थितियों को हल करने का सबसे अच्छा तरीका है गलत मॉडल मॉडल बनाना, जो मूल रूप से मॉडल ऑब्जेक्ट्स की तरह कार्य करता है लेकिन फॉर्म डेटा के साथ 1-से-1 मानचित्र करता है। ये गलत-मॉडल ऑब्जेक्ट्स वास्तव में कुछ भी सहेजते नहीं हैं, वे सत्यापन के साथ डेटा के लिए केवल एक बाल्टी हैं।
ऐसी बात का एक उदाहरण (रेल में) ActiveForm

एक बार डेटा उन में हो जाता है (और मान्य है) यह आम तौर पर सीधे अपने वास्तविक मॉडल को भर में स्थानांतरित करना एक बहुत सरल कदम है।

0

मूल वाक्यविन्यास जांच नियंत्रण में होना चाहिए क्योंकि यह मॉडल के लिए उपयोगकर्ता इनपुट का अनुवाद करता है। मॉडल को वास्तविक डेटा सत्यापन करने की आवश्यकता है।

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