3

私の MVC4 プロジェクトでは、jQuery 日付ピッカーで TextBox を使用しています。dd-MM-yyyy 形式を使用するように両方をフォーマットしました。次に、検索アクションの代わりに、コントローラーによって処理される ajax GET アクションを使用しました。処理メソッドは、ViewModel を入力として使用します。この GET アクションの結果をデバッグするときに気付いたのは、日付が MM-dd-yyyy 形式で処理されていることです。ただし、POST アクションを使用すると、希望どおりに日付が dd-MM-yyyy で受信されます。

Fiddler を使用して、実際に送信されているものを確認したところ、次のことがわかりました。

GET -> MyDate=04-11-2013 (URL 内) POST -> MyDate=04-11-2013 (本文内)

だからそこに違いはありません。次に、コントローラーのアクション ハンドラー メソッドに移動し、ViewModel 入力からの結果を確認しました。

GET -> viewModel.MyDate は 11-04-2013 を示します POST -> viewModel.MyDate は 04-11-2013 を返します

したがって、これは、MVC が GET と POST で異なる DateTimes を解析していると思わせます。ここで何が欠けていますか?

4

1 に答える 1

7

したがって、これは、MVC が GET と POST で異なる DateTimes を解析していると思わせます。ここで何が欠けていますか?

あなたは何も見逃していません。まさにその通りです。GET では、日付は常にフォームであることが期待されますが、yyyy-MM-ddPOST では現在のカルチャが考慮されます。詳細については、http ://weblogs.asp.net/melvynharbour/archive/2008/11/21/mvc-modelbinder-and-localization.aspx をご覧ください。

于 2013-11-13T12:16:08.460 に答える