2017-04-21 1 views
0

샘플 프로젝트를 수행하여 MVC (버전 5)를 배우고 있습니다. 그러므로 나는 비계를 사용하지 않고 처음부터 모든 것을하고 있습니다. 다음 유효성 검사가있는 암호 필드가있는보기 모델이 있습니다.MVC 5의 범위 특성이 예상대로 작동하지 않습니다.

[Display(Name = "Password")] 
    [DataType(DataType.Password)] 
    [Required(ErrorMessage = "{0} is Required.")] 
    [Range(1, 4, ErrorMessage = "{0} has to be between {1} and {2} characters.")] 
    public string Password { get; set; } 

내 .cshtml에서 @Html.EditorFor를 사용하여 렌더링 된 암호 텍스트 상자가 있습니다. 내가 배우기 때문에, 나는 어떤 CSS도 추가하지 않았다. jquery-1.10.2.js, jquery.validate.js 및 jshery.validate.unobstrusive.js에 대한 참조가 cshtml 파일에 추가되었습니다. 위의 암호 필드를 제외하고 유효성 검사가 제대로 작동합니다. 암호 입력란에 1 자만 입력하면 유효성 검사가 통과되지만 그 이상은 실패합니다. 이는 이상합니다. 나는 이것을 이해할 수 없다. 아무도 이것으로 나를 도울 수 있습니까?

+0

를 해결합니다. 자세한 내용은 대답을 참조하십시오 –

+0

이미 언급 한대로 '범위'는 문자열의 길이가 아닌 숫자를 나타냅니다. 또한, 질문은 실제로 기본 jQuery 유효성 검사가 아닌 ASP의 일부로 자명 한 유효성 검사 플러그인을 올바르게 사용하는 방법에 관한 것입니다. 수정 된 태그. – Sparky

+0

감사합니다. 스파키. 귀하의 의견은 질문에 더 잘 답변합니다. 답글로 의견을 추가하십시오. 답장으로 표시하겠습니다. – Ven

답변

1

당신은 방법을 아래에 사용하십시오 문자열이 사용되기 때문에

[StringLength(4, MinimumLength = 1, ErrorMessage = "{0} has to be between {1} and {2} characters.")] 

당신은 당신이 5를 넣어 경우 현장에서의 유효을 1 4를 넣어 너무 때 범위의 값을 지정했을 무엇은 범위를 초과하여 유효하지 않습니다.

실제 값이 아닌 길이가 필요한 경우 문자열 길이을 속성에 사용해야합니다. 당신이 4보다 큰 범위 i.e.12,하지만 길이는 간 척을 초과하는 2 개 문자를 넣을 때

희망이 문제

관련 문제