के लिए मान्यता मैं निम्नलिखित कोड काम कर रहा हैMVC 4 - DataAnnotations - प्रकार
[Required(ErrorMessage = "Price is required.")]
[Range(typeof(Decimal), "1", "9999", ErrorMessage = "Price xx.xx")]
public decimal? productPrice { get; set; }
पेज मूल्य के साथ प्रस्तुत किया जाता है तो = खाली क्षेत्र त्रुटि संदेश है "मूल्य की आवश्यकता है।"। मूल्य = 99 99 से अधिक त्रुटि संदेश "मूल्य xx.xx" है।
हालांकि, जब मैं 'aaaa' टाइप करता हूं तो त्रुटि संदेश "फ़ील्ड उत्पादप्रस एक संख्या होना चाहिए।"
यदि सही नहीं है तो मैं संदेश कैसे बदल सकता हूं? की तरह:। "मूल्य 1-9999 के बीच एक दशमलव/संख्या होनी चाहिए
---- अद्यतन: ---- नीचे कोड, साथ
शून्य, नहीं दशमलव काम रेंज के बीच, लेकिन ".1" के साथ काम नहीं कर रहा
[Required(ErrorMessage = "Price is required.")]
[RegularExpression(@"[0-9]*\.?[0-9]+", ErrorMessage = "Price must be a Numbers only.")]
[Range(typeof(Decimal), "1", "9999", ErrorMessage = "Price must be a decimal/number between {1} and {2}.")]
public decimal? productPrice { get; set; }
यह नियमित अभिव्यक्ति विभिन्न मामलों में विफल हो जाएगी जैसे ".1" मैं संख्याओं को क्रंच करने के लिए नियमित अभिव्यक्तियों का उपयोग करने की अनुशंसा नहीं करता हूं। नियमित अभिव्यक्ति तारों (पाठ) इनपुट से मेल खाने के लिए हैं। इस समस्या को हल करने के लिए RangeAttribute सबसे उपयुक्त तरीका है। –
@ जेओबीजी ने मार्टिन के रूप में कहा, ".1" किसी भी (3) डेटा एन्नोटेशन द्वारा पकड़ा नहीं जा रहा है। कोई विचार? –
बस @MartinDevillers रेंज विधि को 1-99 9 से 0-999 तक बदलें और इसे ".1" पास करना चाहिए, जैसा कि मैंने कहा था कि वास्तव में रेंज एक बेहतर समाधान है। यदि आप इसके साथ जांच करना चाहते हैं तो मैंने एक रेगेक्स भी जोड़ा। – JOBG