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
    

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