core MVC EF 질문드립니다

core MVC 이용해서 자그만한 게시판 개발중인데요
웹에서 컨트롤러로 제목, 내용을 넘겨서 컨트롤러에서 값을 검증 한 후 DB에 INSERT하는 로직인데
검증 과정에서 왜 false가 나오는지 이해할 수 없습니다.

ModelState.IsValid(); 없으면 정상적으로 INSERT 되기는 하는데 이유가 뭘까요?

요건 컨트롤러
스크린샷_20221229_014454

요건 모델
스크린샷_20221229_014913

요건 웹에서 값을 보냈을때
스크린샷_20221229_015031

그 값으로 벨리데이션 했을 때 false가 리턴
스크린샷_20221229_014840

선배님들 도와주십쇼 … fk설정이 잘못된건지 EF를 잘못쓰고 있는건지 길이 안보입니다 ㅠㅠ

1 Like

검증하는 부분이 어디에 있나요? => (ModelState.IsValid)
자동으로 되는 걸까요?

1 Like

올려주신 캡쳐만 보았을땐 딱히 문제는 없는거 같은데

혹시 User테이블에 PK 1 데이터로 실제 User 데이터가 존재 하나요?

(두 테이블이 정상적으로 관계설정이 되어 있고 모델 IsValid 체크를 안했을때 제대로 INSERT 된거라면 실제 User 데이터가 존재하는게 맞겠지만요., 혹시나 해서 답변 달아 보았습니다.)

1 Like

첫 번째 사진에 보시면 if(ModelState.IsValid){} 요기 있습니다.
검사 조건은 두번째 사진에 어노테이션 걸어준 내용이라고 알고있습니다 !

1 Like

네넵 … 값이 존재하기도 하고 관계설정도 되어있는데 저렇게 나오네요

1 Like

참고해보시면 좋을 듯 합니다!

2 Likes

아 혹시 뷰 쪽에서 User를 계속 들고서 같이 넘기나요?
올려주신 마지막 캡쳐본 Model 유효성 체크 키중에 User이 있는게 조금 이상한거 같아서요

1 Like

아뇨 3번째 사진 빨간박스처럼 타이틀, 컨텐츠는 입력받아왔고 UserNo는 서버에서 세션에서 끄집어내서 사용하였고 User에 대한 내용은 없는데 저도 그게 의문입니다 왜 Valid에서 User가 걸리는건지 …

1 Like