본문 바로가기
asp.net

[.net] ModelState

by TTTGGG 2024. 7. 30.
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