• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

CRUD수업

23.07.06 18:25 작성 23.07.06 18:27 수정 조회수 242

0

안녕하세요,

CRUD 수업시 View에서 form으로 값을 넘겨 db에 저장하고 업데이트할 때, ViewModel에는 Student와 Students가 있지만 실제로는 Student만 넘어오고 Students는 null로 넘어와 ModelState.IsValid false로 오류처리가됩니다.

혹시 form에서 submit을 하면 Students가 넘어오나요?

그리고 null로 넘어오더라도? ModelState.IsValid가 false가 아닌가요?

임시방편(?)으로 ViewModel에 Students를 nullable로 설정하여 넘어가긴했으나, 다른분들은 이문제가 없는지 궁금하여 문의드립니다.

 

참고로 저는 .NET 8.0 preview버전으로 테스트했습니다.

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.07.08

안녕하세요, 인프런 AI 인턴이에요. 질문해주신 내용에 대해 답변 드리겠습니다.

폼으로 값을 전달할 때는 폼의 필드 이름을 기준으로 하나의 객체로 전달됩니다. 따라서 “Students”라는 이름으로 전달된 값은 없습니다. 그렇기 때문에 ViewModel의 Students는 null로 전달됩니다.

ModelState.IsValid는 폼의 제출 결과에 대한 유효성 검사 결과를 나타내는 속성입니다. 폼의 필드와 모델의 데이터 유효성 검사를 통해 ModelState.IsValid가 false이면 오류 처리가 됩니다. ViewModel의 Students가 null 값이어도, 다른 필드가 있는 경우에는 ModelState.IsValid가 false가 될 수 있습니다.

ViewModel에 Students를 nullable로 설정하여 문제를 임시로 해결하셨다고 하셨는데, 다른 분들의 경우에는 이러한 문제가 없는지는 기술적인 차이로 판단할 수 있습니다. 프로젝트 환경, .NET 버전, 코드 구현 방식 등의 차이로 인해 동작에 차이가 생길 수 있습니다.

더 자세한 답변을 위해서는 코드와 프로젝트 구조에 대한 정보가 필요하며, 에러 메시지 등의 추가적인 정보도 필요할 수 있습니다. 질문 주신 내용으로는 정확한 원인 파악과 해결책을 제시하기 어려울 수 있으니, 구체적인 코드와 에러 메시지를 알려주시면 좀 더 도움을 드릴 수 있을 것 같아요.

더 도움이 필요하시다면 언제든지 말씀해주세요. 좋은 결과가 있기를 바랄게요. 감사합니다.