28.1. 폼 유효성 검사
다양한 입력값 Validation 방법
- 순수 HTML 및 자바스크립트 사용
- 태그 헬퍼 사용
- System.ComponentModel.DataAnnotations 네임스페이스를 사용하여 모델 차원에서 유효성 검사를 지원한다.
28.2. 모델 메타데이터
자주 사용되는 모델 메타데이터
- Required – 필수 입력요소, SQL 제약 조건의 NOT NULL
- StringLength – 문자열의 길이제한
- Display – 레이블 등에 표시할 텍스트
- DataType – 암호 또는 이메일 형식을 지정
- MinLength – 문자열 최소길이 지정
- MaxLengh – 문자열 최대기이 지정
- RegularExpression – 정규식을 사용해 제약 조건 부여
- Range – 범위 지정
- Compare – 특정값과 비교, 암호 확인 용도로 주로 사용
28.3. 강력한 형식의 뷰
@model 키워드를 사용하여 해당 뷰에서 사용할 모델 클래스를 지정한다.
28.4. 모델 바인딩
HttpPost로 전송된 데이터를 C#의 모델 클래스에 담아서 액션 메서드에 전달하는 기법.
폼 컬렉션과 쿼리 스트링을 분석해서 액션 메서드의 매개 변수에 매핑해주는 기능을 제공한다.
28.4.1. ModelState.IsValid 속성
HttpPost로 전송된 데이터가 모델에서 제시한 유효성 검사를 통과했는지 안했는지를 판단하는 속성. (서버측 유효성 검사)
28.5. 실습
모델 바인딩 : 각각의 매개 변수를 그와 이름이 같은 모델 클래스의 속성으로 자동으로 연결해 주는 기능
@Html.TextBoxFor() 헬퍼 메서드에 의해 data-val-required 처럼 data-로 시작하는 커스텀 속성이 추가된다. 이러한 속성은 클라이언트 기반 유효성 검사를 진행할 때 유용하다.