कैसे ASP.NET MVC में सत्यापन को लागू करने पर सुझाव के अधिकांश (सत्यापन विशेषताओं के साथ मॉडल और नियंत्रक या मॉडल की सजा गुणों के बीच या तो इमारत सेवा परतों) मॉडल के आसपास केंद्रित करने के लिए लग रहे हैं ।मान्यता ASP.NET MVC में ViewModels पर
मेरे आवेदन में मैं नियंत्रकों और विचारों के बीच सभी संचार के लिए ViewModels का उपयोग करता हूं।
मैं अपना लॉगिन एक संपत्ति 'EmailAddress' कहा जाता है के साथ 'LoginViewModel' नामक पेज के लिए एक ViewModel की है।
उपयोगकर्ता अपने ईमेल पते में प्रवेश करती है और क्लिक्स सबमिट करते हैं, इस ViewModel आबादी और नियंत्रक, जहां ईमेल पता मान्य है करने के लिए भेजा जाता है।
यह एक मान्य ईमेल पता होना चाहिए, और उपयोगकर्ता एक डोमेन है कि सिस्टम में पंजीकृत है या से होना चाहिए।
इस पर सत्यापन जोड़ने का एक सुविधाजनक तरीका क्या होगा? क्या मुझे खुद को ViewModel में सत्यापन रखना चाहिए? या यह नियंत्रक में रहना चाहिए?
महान विचार, कीथ! फिलहाल मेरे पास आपके जैसी ही रणनीति है - व्यू मॉडल्स में मॉडल एम्बेड करना। मुझे क्या चाहिए यदि मॉडल और व्यू मॉडेल दोनों एक ही तरीके से सत्यापन लागू कर सकें, और एक जेएस फ्रेमवर्क जैसे कि xVal किसी भी के साथ सहजता से काम कर सकता है। यह सबसे लचीला तरीका होगा। मुझे नहीं लगता कि सत्यापन विशेष रूप से मॉडल से जुड़ा होना चाहिए। – Jonathan
मैं xVal सहित एम्बेडेड मॉडल कक्षाओं के साथ कस्टम व्यू मॉडल का भी उपयोग कर रहा हूं। हालांकि, ऐसे अवसर होते हैं जब मुझे मॉडल के गुणों का केवल एक सबसेट रखने के लिए मेरे व्यूमोडेल की आवश्यकता होती है। मैं वर्तमान में उन मॉडलों को मैप करने के लिए ऑटोमैपर देख रहा हूं। यह ठीक काम करता है, लेकिन मैं उस परिदृश्य में xVal का उपयोग कैसे करूं? MetaData विशेषता के साथ ViewModel को सजाने के लिए काम नहीं करता है क्योंकि एसोसिएटेड मेटाडाटाटाइप टाइप डिस्क्रिप्शन प्रदाता फेंकता है अगर मेटाडेटा ऑब्जेक्ट में वे गुण हैं जो व्यूमोडेल का हिस्सा नहीं हैं। यदि आप ऑटोमैपर का उपयोग कर रहे हैं, तो मैं जानना चाहता हूं कि आपने इस समस्या को कैसे हल किया है। –