[解決済み] MVCのDateTimeバインディングで日付の書式が正しくない場合
質問
Asp.net-MVCでは、DateTimeオブジェクトの暗黙的なバインディングが可能になりました。私は以下のようなアクションを持っています。
public ActionResult DoSomething(DateTime startDate)
{
...
}
これは、ajax呼び出しからの文字列をDateTimeに変換することに成功しています。ただし、日付の形式はdd/MM/yyyyを使用しています。MVCはMM/dd/yyyyに変換しています。 たとえば、文字列 '09/02/2009' を指定してアクションに呼び出しを送信すると、DateTime は '02/09/2009 00:00:00' (ローカル設定での 9 月 2 日) になります。
私は、日付フォーマットのために独自のモデルバインダーをロールバックしたいわけではありません。しかし、MVC が私のためにこれを行うことができる場合、文字列を受け入れるためにアクションを変更し、次に DateTime.Parse を使用しなければならないのは不要なように思えます。
DateTimeのデフォルトモデルバインダーで使用される日付フォーマットを変更する方法はありますか?デフォルトのモデルバインダーは、とにかくローカライゼーションの設定を使用すべきではありませんか?
どのように解決するのですか?
もっと徹底的にググって答えを見つけたところです。
Melvyn Harbour は、なぜ MVC が日付で動作するのか、そして必要に応じてこれを上書きする方法について、徹底的な説明をしています。
http://weblogs.asp.net/melvynharbour/archive/2008/11/21/mvc-modelbinder-and-localization.aspx
<ブロッククオートパースする値を探すとき、フレームワークは特定の順序で探します。
- RouteData (上記には表示されていません)
- URIクエリ文字列
- リクエストフォーム
しかし、これらのうち最後のものだけがカルチャを認識します。ローカライゼーションの観点から、これには非常に良い理由があります。私が航空会社のフライト情報を表示する Web アプリケーションを書き、オンラインで公開したとします。ある日付のフライトを調べるには、その日のリンクをクリックします。 http://www.melsflighttimes.com/Flights/2008-11-21 のようなもの)をクリックして、ある日のフライトを調べ、そのリンクをアメリカにいる私の同僚にメールで送りたいのです。私たち二人が同じページのデータを見ることを保証する唯一の方法は、InvariantCultureを使用することである。対照的に、私がフライトを予約するためにフォームを使用している場合、すべてがタイトなサイクルで起こっている。データはフォームに書き込まれるときにCurrentCultureを尊重することができるので、フォームから戻ってくるときにも尊重する必要があります。
関連
-
[解決済み】Automapperにタイプマップの設定がない、またはマッピングがサポートされていない - エラー
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] datetimeをdateに変換するにはどうすればよいですか?
-
[解決済み] Pythonで日付をdatetimeに変換する
-
[解決済み] JavaScript の日付を yyyy-mm-dd でフォーマットする。
-
[解決済み] C# DateTimeを "YYYYMMDDHHMMSS "フォーマットに変換する。
-
[解決済み] Pythonでタイムゾーンを意識したdatetimeオブジェクトを作るには?
-
[解決済み] Windowsのコマンドラインで、現在の日付/時刻をファイル/フォルダー名で使用するために適切な形式で取得するにはどうすればよいですか?
-
[解決済み] ASP.NET MVCにおけるセッション変数
-
[解決済み] エリア間のRedirectToAction?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Automapperにタイプマップの設定がない、またはマッピングがサポートされていない - エラー
-
[解決済み] ファイルまたはアセンブリ 'System.Web.Mvc' を読み込めませんでした。
-
[解決済み] ASP.Net MVCのmodelStateからすべてのエラーを取得する方法は?
-
[解決済み] ASP.NET MVCのビューを文字列としてレンダリングする方法は?
-
[解決済み】Html.ActionLinkが"?Length=4 "とレンダリングされるのはなぜか?
-
[解決済み】ASP.NET MVC 3 RazorでAjax.BeginFormを使用する。
-
[解決済み】ASP.NET MVC 3 コントローラから200 HTTPステータスコードを返す方法
-
[解決済み】HTTPエラー500.19とエラーコード: 0x80070021
-
[解決済み] datetime2 データ型から datetime データ型への変換で、範囲外の値が発生しました。
-
[解決済み] ASP.NET MVC Html.ActionLinkにアンカータグを含める