1

Web Api ASP.net CORE 1 MVC、C#があります。私はAngular(バージョン1)を使って書かれたClient Appを介してWeb APIを呼び出します。Json日付が間違った形式にシリアル化されています

私は、日付をプロパティとして持つモデルを持つPOSTメソッドを持っています。

私の開発環境では、メソッドに投稿すると、日付が正しく入力され、モデルは有効で、日付は "dd/MM/yyyy"の形式になります。ただし、コードをテストサーバーに移動すると、日付は "MM/dd/yyyy"になります。実際には、テストサーバーでは、この日付のコードは "0001-01-01T00:00:00"のようになります。

クライアントアプリケーションから送信された日付が正しいことをネットワークトラフィックに記録することができます。メソッドに到達すると、.netによって間違った形式にシリアル化されています。モデルの状態は無効です。

誰もこの問題を以前に持っていましたか?その新しいので、現時点ではCORE 1に関する優れたドキュメントを入手するのは難しいです。

私は自分のWeb APIのための私のstartup.csにこのコードを試してみた:

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

しかし、それは物事を解決しません。

+0

http://stackoverflow.com/helpをお読みください/ tagging正しくタグを使用し、質問タイトルにタグを強制するのを避けるためのFAQ、最後に "ありがとう"はありません**を使用する前に[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がレガシーフレームワークに基づくチャンスがまだ残っているので、ちょっと面倒です。 – Tseng

答えて

1

通常、ローカライズ間の日付のシリアライズを避けるため、あいまいでない形式でシリアル化することをお勧めします。この場合、国際ISO形式で日付をフォーマットする方が良いでしょう:

"YYYY-MM-DD"、

を参照してください:http://www.iso.org/iso/home/standards/iso8601.htm

+0

Ok - それは公正な点です。将来私は間違いなくメモしますがこのジレンマを解決する必要があります:-( –

+0

私が提案できる唯一のことは、角型アプリケーションをISO形式でポストするように変更することです.Net CoreはISO形式を理解しており、正しくデシリアライズする必要があります。 – Slicc

関連する問題