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