22

MVC4에서 모델 유효성 검사에 데이터 주석을 사용 중이며 현재 StringLengthAttribute를 사용하고 있지만 최대 값 (현재 50으로 설정)을 지정하고 싶지는 않지만 최소값을 지정하려고합니다. 문자열 길이 값.DataAnnotations StringLength 속성 MVC - 최대 값 없음

최소 길이 만 지정하는 방법이 있습니까? 아마도 내가 사용할 수있는 또 다른 속성입니까?

내 현재 코드는 다음과 같습니다

[Required] 
    [DataType(DataType.Password)] 
    [Display(Name = "Confirm New Password")] 
    [StringLength(50, MinimumLength = 7)] 
    [CompareAttribute("NewPassword", ErrorMessage = "The New Password and Confirm New Password fields did not match.")] 
    public string ConfirmNewPassword { get; set; } 

어떤 도움이 많이 감사합니다.

답변

34

최소 길이 만 지정하는 방법이 있습니까? 아마도 다른 속성을 사용할 수 있습니까?

표준 데이터 주석을 사용하여 번호를 지정해야합니다. 최대 길이를 지정해야합니다. 다른 매개 변수 만 선택적입니다. 이러한 경우

는,이 같은 것을 권 해드립니다 :

[StringLength(int.MaxValue, MinimumLength = 7)] 

또한 사용할 수있는 정규식 (정규 표현식)이 같은 특성이에

[RegularExpression(@"^(?:.*[a-z]){7,}$", ErrorMessage = "String length must be greater than or equal 7 characters.")] 

더 여기 : Password Strength Validation with Regular Expressions

+0

감사 Leniel. 당신이 제안한 것처럼 문자열 길이를 제어하기 위해 정규식을 사용했습니다. – davey1990

1

데이터 주석을 제거하고 Vie의 Html.TextBoxFor 요소에 Html 속성을 추가 할 생각이 있으십니까? w?

@Html.TextBoxFor(model => model.Full_Name, new { htmlAttributes = new { @class = "form-control", @minlength = "10" } }) 

또는

@Html.TextBoxFor(model => model.Full_Name, new { @class = "form-control", @minlength = "10" } }) 

10

당신이 선택하는 최소 길이 인 :

같은 것을 보일 것입니다.

나는 그것이 가지고있는 영향을 빨리 볼 수 있기 때문에 내보기에 html 속성을 추가하려고합니다. 데이터베이스를 망칠 필요없이 마이그레이션을 사용하고 데이터베이스 업데이트를 수행 할 필요가 없습니다 (코드 첫 번째 접근 방식).

EditorForce를 TextBoxFor로 변경하면 스타일을 잃어 버리지 만 쉬운 수정이되어야한다는 것을 기억하십시오. 다시보기에 스타일을 추가하거나 CSS 파일에 스타일을 추가 할 수 있습니다.

희망이 도움이 :)