c# - MVC 5 Razor handling view when validation fails -
मेरे पास एक WebGrid के साथ एक MVC रायर लेआउट है।
<पूर्व> @ एचटीएमएल। वैधतासुंदर () & lt; div & gt; @ मॉडेल सूची & lt; DelsDTO & gt; @ {Var ग्रिड = नया वेबग्रिड (मॉडल, डिफ़ॉल्ट सॉर्ट: "नाम"); } @ ग्रीड.गेटएचटीएमएल (हेडर स्टाइल: "वेबग्रीड-हैडर", कॉलम: ग्रिड। कॉलम (ग्रिड। कॉलम (हैडर: "चुनें", प्रारूप: @ & lt; text & gt; & lt; इनपुट नाम = "चेक किए गए डेल यूनिट" प्रकार = "चेकबॉक्स" ग्रिड ("नाम", शैली: "नामकॉलन"), ग्रिड, "ग्रिड", "ग्रिड", "ग्रिड।" स्तंभ ("सीट", हैडर: "सी दर", शैली: "span1", प्रारूप: (वस्तु) = & gt; (आइटम.कैरेट == शून्य)? स्ट्रिंग.एप्टीः स्ट्रिंग.फ़ॉर्मेट ("{0: 0.00} ", @ Item.CRATE)))) & lt; td & gt; & lt; इनपुट प्रकार =" सबमिट करें "नाम =" सेव चेंज "मान =" परिवर्तन सहेजें "/ & gt; & lt; / td & gt; } & Lt; / div & gt;
एक सबमिट बटन का उपयोग करके मैं एक नियंत्रक विधि में सत्यापन जांच करता हूं। यदि सत्यापन विफल रहता है तो मैं सेट करता हूं:
ModelState.AddModelError ("", "कोई रिकॉर्ड चयनित नहीं"); वापसी देखें ("खोज");
इस बिंदु पर मेरे पास दृश्य के लिए कोई डेटा स्रोत नहीं है इसलिए इसे खाली ग्रिड के साथ वापस किया जाता है इस से निपटने के लिए सबसे अच्छा अभ्यास क्या है?
क्या मुझे वेबग्रीड डाटासॉर (मॉडल) को व्यू से नियंत्रक तक पास कर देना चाहिए अगर सत्यापन विफल हो जाए तो इसे वापस करने के लिए? यदि ऐसा है तो ऐसा कैसे होता है?
यदि सत्यापन विफल हो जाता है, तो मूल रूप से इसे एक बार फिर से मॉडल बनाने की आवश्यकता है कहीं भी नहीं बचा है इसलिए यदि प्रारंभिक कार्रवाई पर आप कुछ कर रहे थे (नीचे सिर्फ एक विचार):
var मॉडल = GetGridModel (); वापसी देखें ("खोज", मॉडल);
जब सत्यापन विफल हो तो सबमिट करने पर आपको ऐसा करने की आवश्यकता होगी:
ModelState.AddModelError ("", "कोई रिकॉर्ड चयनित नहीं"); Var मॉडल = GetGridModel (); वापसी देखें ("खोज", मॉडल);
Comments
Post a Comment