2011-08-25 15 views
16

मैं अपने मोड में इस है:MVC3 jQuery सत्यापन MINLENGTH फिल्टर काम नहीं कर रहा

<div class="editor-label"> 
     <label for="Name">Name</label> 
    </div> 
    <div class="editor-field"> 
     <input class="text-box single-line" data-val="true" data-val-required="Name is required" id="Name" name="Name" type="text" value="" /> 
     <span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span> 
    </div> 

कैसे आ MINLENGTH संकलक द्वारा नजरअंदाज कर दिया जा रहा है:

[Required(AllowEmptyStrings = false, ErrorMessageResourceType = typeof(Registration), ErrorMessageResourceName = "NameRequired")] 
[MinLength(3, ErrorMessageResourceType = typeof(Registration), ErrorMessageResourceName = "NameTooShort")] 
public String Name { get; set; } 

इस में समाप्त होता है? मैं इसे कैसे चालू कर सकता हूं?

उत्तर

32
इसके बजाय MinLength का उपयोग करने का

बजाय इसका उपयोग विशेषता:

[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] 

String Length MSDN

लाभ: कस्टम लिखने के लिए कोई जरूरत नहीं

+0

'न्यूनतम लंबाई 'अब समर्थित है। @ जोश जवाब देखें। – Mrchief

0

यह question देखें। टिप्पणियां पढ़ना ऐसा लगता है कि दोनों तरलदैर्ध्य और maxlenght काम नहीं करते हैं। तो वे maxlenght के लिए स्ट्रिंग लम्बाई विशेषता का उपयोग करने का सुझाव देते हैं। मुझे लगता है कि आप एक कस्टम कस्टम के लिए legth

मिनट के लिए विशेषता लिखना चाहिए विशेषता आप इस

[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = false)] 
public class MyMinLengthAttribute : ValidationAttribute 
{ 
    public int MinValue { get; set; } 

    public override bool IsValid(object value) 
    { 
    return value != null && value is string && ((string)value).Length >= MinValue; 
    } 
} 

की तरह कुछ कर सकते हैं आशा है कि यह

+0

आप सही हैं, इससे पहले नहीं मिला! – YesMan85

9

के बजाय कस्टम विशेषताओं बनाने की परेशानी से गुजर रही मदद करता है ... नियमित अभिव्यक्ति का उपयोग क्यों नहीं करते?

// Minimum of 3 characters, unlimited maximum 
[RegularExpression(@"^.{3,}$", ErrorMessage = "Not long enough!")] 

// No minimum, maximum of 42 characters 
[RegularExpression(@"^.{,42}$", ErrorMessage = "Too long!")] 

// Minimum of 13 characters, maximum of 37 characters 
[RegularExpression(@"^.{13,37}$", ErrorMessage = "Needs to be 13 to 37 characters yo!")] 
5

अब समर्थन करता है विशेषता ASP.Net MVC के नवीनतम संस्करण न्यूनतम लम्बाई और अधिकतम लंबाई विशेषताएं। आधिकारिक एएसपीएनटी एमवीसी पृष्ठ देखें: Unobtrusive validation for MinLengthAttribute and MaxLengthAttribute

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