मेरे ऐप के भीतर मेरे पास एक फॉर्म है जो उपयोगकर्ता से महीने और साल के लिए पूछता है। ये वर्तमान में int? होने के लिए सेटअप हैं, लेकिन जब कोई उपयोगकर्ता इनपुट टेक्स्ट फ़ील्ड में कोई नहीं दर्ज करता है, तो यह 'मान 'सात' महीने के लिए मान्य नहीं है का डिफ़ॉल्ट त्रुटि संदेश फेंकता है।

क्या कोई ऐसा तरीका है जिससे मैं इसे अपनी पसंद की सामग्री के रूप में अनुकूलित कर सकूं?
विचाराधीन क्षेत्र हैं

public int? VisitMonth { get; set; }
public int? VisitYear { get; set; }

मैं मान को मान्य करने के लिए [रेंज ()] का उपयोग कर रहा हूं 1-12 है जब वे एक int दर्ज करते हैं जो अपेक्षित काम करता है।

0
Fenwick17 15 जुलाई 2020, 20:01
आप धाराप्रवाह सत्यापन का उपयोग कर सकते हैं, यह कस्टम सत्यापन नियम और संदेश बनाने की अनुमति देता है। fluentvalidation.net पर जानकारी
 – 
RoninEngineer
15 जुलाई 2020, 20:24

2 जवाब

हां, बस int? के बजाय string का उपयोग करें और एक नियमित अभिव्यक्ति बनाएं (अपनी संपत्ति के लिए RegularExpression विशेषता का उपयोग करें) जो 1-12 के बीच शब्दों और संख्याओं को स्वीकार करता है (जैसा कि आपकी सीमा में है)। सर्वर साइड पर, Int32.TryParse के साथ पार्स करने का प्रयास करें। यदि पार्स सफल होता है तो आपके पास एक संख्यात्मक मान होता है, अन्यथा यह केवल एक स्ट्रिंग है।

0
D A 15 जुलाई 2020, 20:23

आप ErrorMessage प्रॉपर्टी का उपयोग करके सत्यापन त्रुटि संदेश को ओवरराइड कर सकते हैं। नीचे के रूप में कोड:

    [Required(ErrorMessage = "Please enter a valid Month")]
    [Range(1,12,ErrorMessage ="Entered Month is inValid")]
    public int? VisitMonth { get; set; }

    [Required(ErrorMessage ="Please enter a valid Year")]
    [Range(1, 12, ErrorMessage = "Entered Year is inValid")]
    public int? VisitYear { get; set; }

उत्पादन:

enter image description here

0
Zhi Lv - MSFT 16 जुलाई 2020, 05:34