2013-01-31 16 views
17

मैं अपने मॉडल में एएसपीएनटी एमवीसी 4 का उपयोग कर रहा हूं, मैं अधिकतम लम्बाई विशेषता का उपयोग कर रहा हूं लेकिन यह स्ट्रिंग के लिए काम नहीं करता है। केवल स्ट्रिंगलेथेंथ काम करता है किसी को भी एक ही समस्या है? अगर हल किया गया तो कैसे हल किया गया था? इसे सत्यापित करने में मेरी क्षेत्र के लिए काम नहीं करता है यहाँ मेरी कोडAsp.net mvc dataannotation MaxLength सत्यापन काम नहीं करता

(काम नहीं कर रहा)

[Required] 
[MaxLength(80)] 
[DisplayName("Contact Name:")] 
public string ContactName { get; set; } 

(काम कर)

[Required] 
[StringLength(80)] 
[DisplayName("Contact Name:")] 
public string ContactName { get; set; } 
+0

मैं एक त्रुटि नहीं मिल रहा है की जाँच करने के लिए है। कृपया क्लास ContactName प्रदान करें। – Dom

+0

मैंने नहीं कहा है कि मुझे त्रुटि मिल रही है। मैंने केवल इतना कहा है कि यह काम नहीं करता है। – Garry

उत्तर

27

दोनों गुण इकाई की रूपरेखा के लिए में प्रति माइक्रोसॉफ्ट आधिकारिक वेबसाइट [MaxLenth] विशेषता के रूप में System.ComponentModel.DataAnnotations नाम स्थान

में हैं के साथ केवल एक क्योंकि इकाई की रूपरेखा जानता हो सकता है क्या आपके मामले में डेटाबेस में कॉलम की अधिकतम लंबाई (जैसे वर्कर (80))

किसी संपत्ति में अनुमत सरणी या स्ट्रिंग डेटा की अधिकतम लंबाई निर्दिष्ट करता है।

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.maxlengthattribute.aspx

आप में से एक के रूप में टिप्पणी क्या आप @jackncoke साथ उत्तर में इकाई की रूपरेखा का उपयोग नहीं कर रहे हैं ताकि [MaxLength(80)]

काम नहीं करेगा ने कहा है लेकिन दूसरे मामले में [StringLength(80)] क्योंकि काम कर रहा है यह इकाई फ्रेमवर्क पर निर्भरता नहीं है।

अतः [StringLength(80)] दोनों ही मामलों में काम करता है, तो आप इकाई की रूपरेखा या बिना यह

न्यूनतम और अक्षर हैं जो एक डेटा क्षेत्र में अनुमति दी जाती है की अधिकतम लंबाई निर्दिष्ट करता है का उपयोग कर रहे होंगे।

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.stringlengthattribute.aspx

5

[MaxLength(80)] परिवर्तन [StringLength(80)] है, लेकिन लगता है कि आप मुझे यह करने के लिए हराया !

आपका नहीं इस समस्या

MaxLength Attribute not generating client-side validation attributes

+1

हाँ मुझे पता है कि यह [स्ट्रिंग लम्बाई (80)] के साथ काम करता है लेकिन मेरा सवाल यह है कि [अधिकतम लम्बाई (80)] के साथ क्यों नहीं? माइक्रोसॉफ्ट के लिए भी accoridng यह मान्य attibute है लेकिन आप उत्तर के लिए पहला व्यक्ति है तो आपके लिए +1 – Garry

+0

क्या मैक्सलेथेंथ आपके किसी भी मॉडल के लिए काम करता है ?? जैककोक ?? – Garry

+1

मैं बस पुरानी परियोजनाओं को देख रहा था और मैंने इसे कभी भी स्ट्रिंग लम्बाई का उपयोग नहीं किया है।तो मैं यह देखने के लिए इंटरनेट पर देख रहा था कि किसी और के पास इस तरह का मुद्दा था या नहीं। मैंने लोगों को इसका उपयोग करके देखा है क्योंकि मैं खोज रहा हूं। – jackncoke

3
MVC4 MaxLength में

ठीक से workd, मैं इसे

public class RegisterModel 
{ 
    [Required] 
    [Display(Name = "User name")] 
    [MaxLength(5)] //MaxLength worked properly. 
    public string UserName { get; set; } 

    [Required] 
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] 
    [DataType(DataType.Password)] 
    [Display(Name = "Password")] 
    public string Password { get; set; } 

    [DataType(DataType.Password)] 
    [Display(Name = "Confirm password")] 
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] 
    public string ConfirmPassword { get; set; } 
} 

enter image description here

+1

एंटीटी-फ्रेमवर्क का कौन सा संस्करण है आप उपयोग कर रहे हैं? – Pamma

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