एमवीसी 3 के साथ, क्या मुझे अपने व्यू मॉडलों को डिज़ाइन करना चाहिए जैसे कि दृश्य (डिस्प्लेमोडेल) के लिए बाध्य है, और एक जिसे नियंत्रक (एडिटमोडेल) पर वापस पोस्ट किया गया है?एमवीसी 3 में, क्या मेरे पास अलग-अलग "संपादन" मॉडल बनाम "प्रदर्शन" मॉडल होना चाहिए?
स्पष्टीकरण के लिए, मैं डेटा मॉडल बनाम मॉडल के बारे में नहीं पूछ रहा हूं - मुझे पता है कि मेरे विचार/नियंत्रकों को डेटा/डोमेन मॉडल में बाध्य करना अच्छा नहीं है।
न ही मैं एक मॉडल को दो अलग-अलग विचारों में साझा करने के बारे में पूछ रहा हूं, एक दृश्य जिसे डेटा प्रदर्शित करने के लिए उपयोग किया जाता है, और डेटा को संपादित करने के लिए उपयोग किया जाने वाला एक और दृश्य।
इसके बजाय, मैं एक दृश्य के बारे में पूछ रहा हूं जिसका उपयोग डेटा संपादित करने के लिए किया जाता है, और मॉडल जो दृश्य बनाम मॉडल है जो नियंत्रक कार्रवाई से जुड़ा हुआ है।
दूसरे शब्दों में, अगर यह मेरे विचार है:
@model MyApp.Models.CustomerModel
की तरह मेरे नियंत्रक कार्रवाई दिखना चाहिए:
public ActionResult Index(CustomerModel model)
या:
public ActionResult Index(CustomerEditModel model)
एक बिंदु पर, हम थे उत्तरार्द्ध (अलग) कर रहे हैं। लेकिन हाल ही में, हमने पूर्व (साझा) करना शुरू कर दिया है।
इस परिवर्तन का कारण था क्योंकि:
- MVC3 विनीत सत्यापन की सहायता से
, अगर मैं सत्यापन के लिए अपने मॉडल पर DataAnnotations उपयोग कर रहा हूँ, यह दोनों मॉडल में की जरूरत है अगर वे प्रदर्शन पर अलग होती है (क्लाइंट-साइड सत्यापन को मैप करने के लिए मॉडल, और सर्वर-साइड सत्यापन के लिए संपादन मॉडल पर)।
हमारे आवेदन परिपक्व होने के बाद, हमने महसूस किया कि हमारे प्रदर्शन मॉडल में मौजूद चुनिंदा सूचियों के अपवाद के साथ, हमारे प्रदर्शन और संपादन मॉडल 95% समान थे। अब हम इन्हें shared class पर ले जा चुके हैं और इन्हें अब दृश्य के माध्यम से पास कर रहे हैं।
लेकिन मैं कुछ अन्य विचार विमर्श उस दृश्य/नियंत्रक के लिए साझा मॉडल होने एक बुरा विचार है, और चिंताओं में से है कि it violates जुदाई होने की ओर इशारा करते देखा है।
क्या कोई मुझे इन दो दृष्टिकोणों के लिए व्यापारिक समझने में मदद कर सकता है?
महान प्रश्न, और कुछ मैंने अपने साथ संघर्ष किया है। मेरे द्वारा विकसित अंतिम प्रमुख ऐप में दोनों के मामले हैं। जब वे दूर से अलग हो जाते हैं, तो मैं अलग करता हूं, लेकिन ज्यादातर मामलों में वे वही होते हैं। – Patricia