0
나는 간단한 API가 POSTMAN에서 다음 ASP.NET 코어Json을 사용하여 우편 배달부를 사용하여 사전 유형을 게시하는 방법은 무엇입니까?
[Route("api/[controller]/[action]")]
public class WorkunitController : Controller
{
private IRepository _repository = null;
public WorkunitController(IRepository repositoty)
{
_repository = repositoty;
}
[HttpPost]
public async Task SetTransformed([FromBody]long id)
{
if (ModelState.IsValid)
{
await _repository.SetTransformed(id);
}
}
}
}
을 사용하여 개발 한 나는
- "의 Content-Type"등을 추가 다음
- 설정 URL을했다 "application/json"
설정 바디
{ "ID": 51437665009 } I 보내기에
클릭, 내가 볼 요청이 서버에 제공하지만 ModelState.IsValid은 false
이고 예외는 ModelState에있다
- 예외 {Newtonsoft.Json.JsonSerializationException이 : 현재 JSON 객체를 직렬화 할 수 없습니다 (예 : 유형이 JSON 프리미티브 값 (예 : 문자열, 숫자, 부울, null)을 필요로하기 때문에 유형이 'System.Int64'유형 ({name ":"value "})으로 잘못 변환 될 수 있습니다. 이 오류를 수정하려면 JSON을 JSON 프리미티브 값 (예 : 문자열, 숫자, 부울, null)으로 변경하거나 일반 .NET 유형 (예 : integer와 같은 기본 유형이 아니라 비 직렬화 유형)으로 변경하십시오. 배열 또는 목록과 같은 컬렉션 유형 )은 JSON 객체의 비 직렬화 된 일 수 있습니다. JsonObjectAttribute를 유형에 추가하여 JSON 객체에서 역 직렬화하도록 할 수도 있습니다. Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (JsonReader 리더 objectType의 유형, JsonContract 계약 JsonProperty 부재 JsonContainerContract containerContract, JsonProperty containerMember, 개체 existingValue)를 에서의 경로 'ID', 라인 (2), 위치 17 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (JsonReader 리더, 유형 objectType의, 부울 checkAdditionalContent)} System.Exception {Newtonsoft.Json.JsonSerializationException}
나는 또한 데이터 형식으로 JSON을 사용하는 경우
{ \"id\":\"51437665009\"}