मुझे एक ऐसी स्थिति मिली है जहां मैं एक छवि अपलोड कर रहा हूं जिसे उपयोगकर्ता ने अपने स्थानीय फ़ाइल सिस्टम से चुना है। मेरे विचार में मेरा फॉर्म, मूल रूप से दो सबमिट बटन हैं। फॉर्म को सामान्य रूप से सबमिट करने के लिए उपयोग किया जाता है, और सभी सत्यापन निष्पादित होते हैं। दूसरा केवल छवि अपलोड करने के लिए है, जिस स्थिति में मैं अभी तक सत्यापन नहीं करना चाहता।
मैंने अपनी 'अपलोड इमेज' सबमिट बटन को "स्टाइल-नेम कैंसल" का एक वर्ग मान देकर क्लाइंट साइड सत्यापन को बंद करने में कामयाब रहा, इसलिए
<input type="submit" name="UploadImageButton" value="Upload Image" class="style-name cancel" />
अब, जब मैं वापस पोस्ट करता हूं, तो मेरे मॉडल में एक संपत्ति UploadImageButton है, जब यह बटन क्लिक किया जाता है, तो यह इस संपत्ति (इनपुट का नाम संपत्ति से मेल खाता है) को पॉप्युलेट करता है। इस तरह, मुझे पता है कि क्या फॉर्म मेरे सच्चे सबमिट बटन द्वारा या UploadImageButton द्वारा प्रस्तुत किया गया था।
मेरा सवाल यह है ... मैं सर्वरसाइड सत्यापन को कैसे बंद कर सकता हूं? जब उपयोगकर्ता इस बटन पर क्लिक करता है तो मुझे सत्यापन सारांश जानकारी नहीं दिखती है। मुझे पता है कि आप इसका उपयोग करके कस्टम मॉडल त्रुटियों को जोड़ सकते हैं
ModelState.AddModelError("{key}", "{error msg}");
मैं मॉडल त्रुटियों को दूर करने के साधन की तलाश में हूं। क्या यह संभव है?
संपादित करें:
यहां वह है जो मैंने जुटाया:
foreach (var key in ModelState.Keys.ToList().Where(key => ModelState.ContainsKey(key))) {
//ModelState.Remove(key); //This was my solution before
ModelState[key].Errors.Clear(); //This is my new solution. Thanks bbak
}
Where(key => ModelState.Keys.Contains(key))
? ऐसा लगता है कि जहां खंड निरर्थक है, क्योंकि ModelState.Keys में प्रत्येक कुंजी का अपना ModelState.Keys.Contains (कुंजी) सही होगा।