2

ASP.NET MVC 4 WebApi가 있습니다. ORM (데이터베이스 첫 번째)으로 Entity Framework를 사용합니다. DB에는 int "id"가 ID (자동 증가)로 설정된 몇 개의 필드가있는 테스트 테이블이 하나만 있습니다.ASP.NET MVC 4 ModelState가 키를 전달할 때 유효하지 않습니다.

자바 스크립트 클라이언트로 기본 CRUD를 구현하려고하지만 POST 메서드를 사용하면 항상 ModelState.IsValid = false이됩니다. 나는 오류를 파싱했고 그것이 0이라는 값을 가진 "id"필드에서 오는 것을 보았다. 어떻게 API가 자동 증가 키의 이런 종류를 관리합니까? "id"필드에서 무엇을 기대합니까?

모든 것은 템플릿을 기반으로합니다. WebApi 생성 컨트롤러에 대한 코드를 변경하지 않았습니다. 다른 모든 작업 (읽기, 업데이트, 삭제)은 정상적으로 작동합니다.

EDIT : ModelState.IsValid() 테스트를 우회하면 데이터가 DB에 저장되고 모든 것이 작동합니다 ...하지만 분명히 원하는 것은 아닙니다.

EDIT 2 : 데이터베이스의 ID 속성이 EDMX의 id 필드에있는 StoreGeneratedPattern 속성에 의해 처리된다는 것을 발견했습니다. 가능한 값은 "Computed", "Identity"및 "None"입니다. 제 경우에는 "신원"으로 설정되어 있습니다.

+0

EF 코드를 먼저 사용하고 있습니까? 아니면 모델을 먼저 사용하고 있습니까? – CodingGorilla

+0

'Id' 속성에'Required' 속성이 있는지 확인하십시오. – CodeNotFound

+0

질문에 지정된대로 먼저 데이터베이스입니다. 데이터베이스에서 엔티티 모델을 생성했습니다. 엔티티 클래스에 [필수] 속성이 표시되지 않습니다. –

답변

2

모델의 ID를 확인하지 않은 확인을 확인하십시오. 자동 생성 된 ID를 입력하십시오.

관련 문제