मेरे पास निम्न चयन सूची है:
& lt; चुनें d = "Own__id" नाम = "Owner.Id" & gt; & Lt; विकल्प मान = "" & gt; [मालिक का चयन करें] & lt; / option & gt; & Lt; विकल्प मान = "1" & gt; स्वामी 1 & lt; / विकल्प & gt; & Lt; विकल्प मान = "2" & gt; स्वामी 2 & lt; / विकल्प & gt; & Lt; विकल्प मान = "3" & gt; स्वामी 3 & lt; / विकल्प & gt; & Lt; / चयन & gt; यह करने के लिए बाध्य हो जाता है:
सार्वजनिक वर्ग part {// ... अन्य अंश गुण ... सार्वजनिक स्वामी के मालिक {get; सेट;}} सार्वजनिक वर्ग के स्वामी {सार्वजनिक इन्ट आईडी (प्राप्त; सेट;} सार्वजनिक स्ट्रिंग नाम {get; सेट में;}} मुझे जो समस्या चल रही है वह यह है कि अगर [मालिक का चयन करें] विकल्प चुना जाता है तो एक त्रुटि फेंक दी जाती है क्योंकि मैं बाध्य हूँ एक int के लिए एक खाली स्ट्रिंग मैं जो व्यवहार चाहता हूँ वह एक खाली स्ट्रिंग है, जो कि नल मालिक संपत्ति पर पार्ट पर होता है।
क्या इस व्यवहार को पाने के लिए पार्ट मॉडल बाइंडर को संशोधित करने का कोई तरीका है? तो जब मालिक की हिस्सेदारी बाध्यकारी होती है, अगर स्वामी। खाली एक खाली स्ट्रिंग है तो बस एक रिक्त स्वामी वापस लौटें मैं मालिक मॉडल बाइंडर को संशोधित नहीं कर सकता क्योंकि मुझे अपने नियंत्रक में डिफ़ॉल्ट व्यवहार (ओनर्स जोड़ने / हटाने) की आवश्यकता होती है।
आप कस्टम मॉडल बाइंडर की कोशिश कर सकते हैं:
सार्वजनिक वर्ग पार्टबिन्डर: डिफ़ॉल्ट मॉडेबबिन्डर {सुरक्षित ओवरराइड ऑब्जेक्ट GetPropertyValue (नियंत्रक कंटबॉक्स नियंत्रक कंसटका, ModelBindingContext बाइंडिंग कंटैक्स, सिस्टम.कंपनेन्टमॉडेल.प्रॉपर्टी डिस्क्रिप्टर संपत्ति डिस्क्रिप्टर, आईएमोडेल बिल्डर प्रॉपर्टीबंदर) {If (propertyDescriptor.PropertyType == typeof (स्वामी)) {var idResult = बाध्यकारी कंटबॉक्स। ValueProvider .GetValue (बाध्यकारी कोंटेन्टेक्स्ट। मॉडेल + "आईआईडी"); अगर (idResult == नल || स्ट्रिंग। इज़नल ऑरप्टी (आईडीआरसल्ट। अटैटेड वेल्यू)) {वापसी नल; }} रिटर्न बेस। गेटप्रॉपर्टी वैल्यू (नियंत्रक कंटबॉक्स, बाइंडिंग कॉन्टैक्स, प्रॉपर्टी डिस्क्रिप्टर, प्रॉपर्टीबैण्डर); }} और फिर:
[एचटीपीपीओस्ट] पब्लिक एक्शन रिजल्ट इंडेक्स ([मॉडल बिल्डर (टाइपफ (पार्टबिन्डर)) पार्ट पार्ट) {रिटर्न व्यू () ; } या वैश्विक रूप से पंजीकृत करें:
ModelBinders.Binders.Add (टाइपफ (भाग), नया पार्टबिंकर ());
Comments
Post a Comment