1

Web Api ASP.net CORE 1 MVC, C#이 있습니다. Angular (버전 1)을 사용하여 작성한 클라이언트 응용 프로그램을 통해 웹 API를 호출합니다.Json 날짜가 잘못된 형식으로 serialize되었습니다.

날짜가 속성 인 모델이있는 POST 메서드가 있습니다.

내 개발 환경에서 메서드에 게시하면 날짜가 올바르게 전달되고 모델은 유효하며 날짜는 "dd/MM/yyyy"과 같은 형식입니다. 그러나 코드를 테스트 서버로 옮길 때 날짜는 "MM/dd/yyyy"입니다. 실제로 테스트 서버에서 날짜는 "0001-01-01T00 : 00 : 00"과 같은 코드를 사용합니다.

클라이언트 응용 프로그램에서 보낸 날짜가 정확한지 네트워크 트래픽을 기록하는 것으로 볼 수 있습니다. 메서드에 도달하면 .net에 의해 잘못된 형식으로 serialize되고 모델 상태가 유효하지 않습니다.

이전에이 문제가 발생 했습니까? CORE 1에 대한 좋은 문서를 얻는 것이 어렵다.

services.AddMvc().AddJsonOptions(opt => 
    { 
     opt.SerializerSettings.DateFormatString = "dd/MM/yyyy"; 
    }); 

을하지만 일을 도움이되지 않습니다

나는 내 웹 API를 내 startup.cs이 코드를 시도했습니다.

+0

읽어 보시기 바랍니다 http://stackoverflow.com/help :

참조,

"YYYY-MM-DD":이 경우는 국제화 ISO 형식으로 날짜를 포맷 좋을 것이다/tagging 올바르게 태그를 사용하고 질문 제목에 태그를 강요하는 것을 피하려면 FAQ를 쓰고 끝에 "thanks"를 쓰지 마시고 ** 사용하기 전에 ** [tag : asp.net-mvc6]에 대한 설명을 읽어주십시오 **! – Tseng

+0

태그는 기존 웹 스택의 '잠재적 인'미래 버전을위한 것이라면 공개적으로 액세스 할 수 없어야합니다. – BenM

+1

@BenM : 이미 버니 테이트 요청이 있습니다. http://meta.stackoverflow.com/questions/317858/burninate-mvc6 및 http://meta.stackoverflow.com/questions/322140/burinate-asp-net-core -mvc6-and-asp-net-mvc6 및 http://meta.stackoverflow.com/questions/315270/asp-net-5-ef7-tags-incorrectly-synonymized 아무도 정말로 신경 쓰지 않고 asp.net- mvc6 asp.net-core-mvc의 동의어는 레거시 프레임 워크를 기반으로하는 실제 MVC6이 제공 될 가능성이 여전히 있으므로 worng입니다. – Tseng

답변

1

일반적으로 현지화를 통한 날짜의 직렬화에 대한 혼동을 피하기 위해 모호하지 않은 형식으로 일련 번호를 지정하는 것이 좋습니다. http://www.iso.org/iso/home/standards/iso8601.htm

+0

Ok - 그 점은 당연한 것이며 앞으로는 분명히 메모 해 드리겠습니다. 이 딜레마가 이제 해결해야 할 필요가 있습니다 :-( –

+0

내가 제안 할 수있는 유일한 것은 ISO 형식으로 게시 할 앵글 응용 프로그램을 변경한다는 것입니다 ..NET 코어는 ISO 형식을 이해하고 올바르게 deserialise해야합니다. – Slicc

관련 문제