1. ホーム
  2. asp.net-mvc

[解決済み】MVC4 DataType.Date EditorForがChromeで日付の値を表示しない、Internet Explorerでは問題なし。

2022-04-12 07:11:49

質問

モデルでDataType.Date属性を使用し、ビューでEditorForを使用しています。これは インターネットエクスプローラー8 インターネットエクスプローラー9 を、しかし グーグルクローム が表示され、値が表示される代わりに、"月/日/年"が薄くグレーテキストで表示されるだけです。

なぜGoogle Chromeは値を表示しないのですか?

モデルです。

[DataType(DataType.Date)]
public Nullable<System.DateTime> EstPurchaseDate { get; set; }

表示します。

<td class="fieldLabel">Est. Pur. Date</td>
<td class="field">@Html.EditorFor(m=>m.EstPurchaseDate)</td>

<イグ

解決方法は?

モデルプロパティを [DataType(DataType.Date)] ASP.NET MVC 4 のデフォルトのテンプレートでは、入力フィールドとして type="date" :

<input class="text-box single-line" 
       data-val="true" 
       data-val-date="The field EstPurchaseDate must be a date."
       id="EstPurchaseDate" 
       name="EstPurchaseDate" 
       type="date" value="9/28/2012" />

Google ChromeなどHTML5をサポートするブラウザでは、この入力フィールドは日付ピッカーで表示されます。

日付を正しく表示するためには、値の書式を 2012-09-28 . 引用元 仕様 :

の値を指定します。 RFC 3339]で定義されている有効な完全な日付で、さらに 年成分が4桁以上であることが必要です。 0より大きい数を表す。

この書式を強制するには DisplayFormat 属性で指定します。

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> EstPurchaseDate { get; set; }