2010-03-22 12 views
30

क्या मैं स्ट्रिंग फ़ील्ड के लिए न्यूनतम लंबाई निर्दिष्ट करने के लिए एमवीसी 2 डेटा एनीमेशन का उपयोग कर सकता हूं?एएसपी.नेट-एमवीसी 2 डेटाअनोटेशन स्ट्रिंग लम्बाई

क्या किसी ने ऐसा किया है या उन्होंने कस्टम विशेषताओं को बनाया है और यदि ऐसा है तो आप स्रोत साझा करना चाहते हैं?

उत्तर

73

यदि आप एएसपीनेट 4.0 का उपयोग कर रहे हैं, तो आप न्यूनतम लंबाई निर्दिष्ट करने के लिए स्ट्रिंग लम्बाई विशेषता का उपयोग कर सकते हैं।

उदाहरण के लिए:

[StringLength(50, MinimumLength=1)] 
public string MyText { get; set; } 
+2

नहीं हम 4.0 बस अभी तक उपयोग नहीं कर रहे हैं और जिस तरह से चीजें यहां हो यह एक लंबे समय के लिए अभी तक नहीं किया जाएगा। :) – griegs

+0

FYI .. यदि आप "अंडर-पोस्ट" (जिसका अर्थ है कि आप "MyText" नामक फ़ॉर्म फ़ील्ड पोस्ट नहीं करते हैं), उस संपत्ति पर स्ट्रिंग लम्बाई सत्यापन को अनदेखा कर दिया जाएगा। [यहां एक लेख है] (http://bradwilson.typepad.com/blog/2010/01/input-validation-vs-model-validation-in-aspnet-mvc.html) इसी परिदृश्य का उपयोग करके इस परिदृश्य को समझाते हुए (आवश्यक एट्रिब्यूट) । – tbehunin

7

एक रेगुलर एक्सप्रेशन विशेषता का उपयोग करें। इन्हें क्लाइंट साइड पर भी व्याख्या किया जाता है।

[RegularExpression(Regexes.MinStringLength)] 
public string MyText { get; set; } 

कहाँ Regexes.MinStringLength एक स्थिर नियमित अभिव्यक्ति वर्ग है। इनलाइन इस प्रकार दिखाई देगा:

[RegularExpression(@"^.{5,10}$")] // valid five to ten characters 
public string MyText { get; set; } 
+0

Regexes.MinStringLength घर उगाया जा रहा प्रतीत होता है, शायद आप एक उदाहरण में डाल सकते हैं जो अन्य परिभाषाओं के बिना काम करता है? हो सकता है [RegularExpression ("। {1}")], जो भी न्यूनतम लंबाई के लिए 1 बदल रहा है। –

+0

क्षमा करें, इसे पढ़ना चाहिए [RegularExpression ("। {1,}")] - ref http://msdn.microsoft.com/en-us/library/az24scfc.aspx –

+0

निश्चित रूप से - अद्यतन देखें। –

संबंधित मुद्दे