728x90
반응형
SMALL
ModelState는 asp.net mvc와 asp.net core에서 모델 바인딩 및 유효성 검사를 수행한 후 그 결과를 저장하는 데 사용되는 객체
주로 클라이언트가 서버로 전송한 데이터가 유효한지 확인하는데 사용됨
ModelState 역할
- 모델 바인딩 : 클라이언트로부터 전송된 데이터를 컨트롤러의 액션 메서드로 전달된 모델 객체에 바인딩함. 이 과정에서 데이터 형식이 맞지 않거나 바인딩 할 수 없는 데이터가 있을 경우 ModelState에 오류가 추가됨.
- 유효성 검사 : 모델 바인딩이 완료된 후 모델에 정의된 유효성 검사 특성을 기반으로 데이터를 검증함.
ex) Required, StringLength 등..
ModelState 구성 요소
- IsValid : ModelState가 유효한지 여부를 나타내는 bool 값
- Values : 모델 바인딩 및 유효성 검사 결과를 포함하는 ModelStateEntry 객체의 컬렉션
- Errors : 각 ModelStateEntry는 해당 속성의 바인딩 및 유효성 검사 오류를 포함하는 ModelError 객체의 컬렉션을 가짐
// 데이터 검증
if (ModelState.IsValid)
{
var result = await AddUserAsync(dto);
return result;
}
// 오류 처리
var errors = ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage).ToList();
var errorMessages = string.Join(", ", errors);
_logger.LogWarning("Model state invalid: {@Errors}", errors);
return $"0: {errorMessages}";
728x90
반응형
LIST
'asp.net' 카테고리의 다른 글
[.net] Global.asax 기반의 데이터 캐싱 및 테이블 바인딩 처리 (0) | 2024.08.22 |
---|---|
[.net] Dapper, ExecuteAsync (0) | 2024.07.30 |
[.net] TempData (0) | 2024.07.19 |
[.net] ViewBag (0) | 2024.07.10 |
[.net] LINQ (0) | 2024.07.05 |