더북(TheBook)

2. 모델 클래스 속성에 [Required] 특성을 적용하면 해당 모델 클래스와 바인딩된 액션 메서드에서 ModelState.IsValid 속성으로 데이터가 정확한지 아닌지 유효성 검사를 진행할 수 있다. 정확한 데이터가 입력되면 IsValid 속성이 true가 된다. 다음과 같이 if 문을 사용해 모델에 정의된 특성에 맞는지 안 맞는지를 확인해서 서로 다른 뷰 페이지를 보여줄 수 있다. 각각의 속성에 대한 에러 메시지를 따로 정의하려면 ModelState.AddModelError() 메서드를 사용하면 된다.

▼  /Controllers/FormValidationDemoController.cs 아래 액션 세 개 추가

#region Model Validation + Server Validation
public IActionResult ModelValidation()
{
  return View();
}

[HttpPost]
public IActionResult ModelValidation(MaximModel model)
{
  // 직접 유효성 검사
  if (string.IsNullOrEmpty(model.Name))
  {
      ModelState.AddModelError(“Name”, “이름을 입력하세요.”);
  }
  if (string.IsNullOrEmpty(model.Content))
  {
      ModelState.AddModelError(“Content”, “내용을 입력하세요.”);
  }

  if (!ModelState.IsValid)
  {
      // @Html.ValidationSummary(true)일 때는 아래 에러만 표시
      ModelState.AddModelError(””, “모든 에러”);
  }
  
  // 넘어온 모델에 대한 유효성 검사
  if (ModelState.IsValid)
  {
      return View(“Completed”);
  }
  
  return View();
}

public IActionResult Completed()
{
  return View();
}
#endregion

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.