モデルをクライアント側で動作させたいと仮定すると、システムに必要なグローバリゼーションを使用するようにASP .NETグローバリゼーション設定を変更します。これは、クライアントが1つの一貫した日付時間形式を使用するシステムを使用することをクライアントが期待する場合にのみ、実際に有効なソリューションです。
あなたが遭遇した問題は(私が思うに)、一部のブラウザは、クライアント側とより広い世界に提示するグローバリゼーションを使用するグローバル化について一貫していないことです。
質問
私のモデルには、このような私の見解では形式で表示されているデータタイムフィールドがあります。
<div class="editor-field">
@Html.EditorFor(model => model.Age)
@Html.ValidationMessageFor(model => model.Age)
</div>
新しいモデルが作成され、データベースに挿入されたら、次の値を割り当てます 09/11/1990 15:36:22
. 。私のビューを使用してこのモデルを編集しようとした場合、の値を変更しない場合 Age
私のモデルでは、モデルが検証され、他のフィールドへの変更は受け入れられ、保存されます。ただし、変更した場合 Age
フィールドへ 07/27/2010 15:36:22
検証エラーが発生しています」 The value '07/27/2010 15:36:22' is not valid for Age.
しかし、日付 09/12/2010 15:36:22
正常に検証されています。これが起こっている理由は何ですか?デバッガーでは、無効な日付に対して返される値は 01/01/0001
.
編集:これは、クライアント側の検証がDD/mm/yyyy形式の日付に失敗し、サーバー側の検証がmmにある日付に失敗しているため、これはjquery-validateと私のシステムの文化に関係していると思います。 /dd/yyyy形式。
解決
モデルをクライアント側で動作させたいと仮定すると、システムに必要なグローバリゼーションを使用するようにASP .NETグローバリゼーション設定を変更します。これは、クライアントが1つの一貫した日付時間形式を使用するシステムを使用することをクライアントが期待する場合にのみ、実際に有効なソリューションです。
あなたが遭遇した問題は(私が思うに)、一部のブラウザは、クライアント側とより広い世界に提示するグローバリゼーションを使用するグローバル化について一貫していないことです。