2017-01-11 8 views
0

私はASP.NET MVC 5アプリケーションを持っています。日付フィールドは多分です。 W3C Markup Validatorは、不適切なtype属性値を持つ日付テキストフィールドについて不平を言っていますが、物事はうまく機能しています。type = "datetime"をHTML5標準タイプ= "date"に変更するにはカスタムエディタテンプレートなしでMVC EditorForを使用しますか?

私はEditorForヘルパーを使用してDateTimeまたはNULL可能DateTimeプロパティのinput年代をレンダリングしています:

<input type="datetime"> 

の "日時" 値:これはに翻訳なっている

@Html.EditorFor(model => model.BeginDate) 

type属性はもはやW3C HTML5 Forms standardの標準ではありません。サポートされた日付/時刻の種類は次のとおりです。

  • 日付 - 日付(年、月、日)がない時間帯で
  • 時間 - 時間がない時間帯で(時、分、秒、秒の小数)

標準MVCエディタテンプレートが完璧に動作するので、私は本当に、カスタムエディタテンプレートを作成したくない、type="datetime"属性値を除いは非標準です。

それは私自身のエディタテンプレートを作成せずに<input type="date">要素を作成しますので、どのように私はDateTimeオブジェクトのためのEditorForメソッドのデフォルトの動作をオーバーライドすることができますか?

+0

これはhttps://stackoverflow.com/questions/7124434/display-only-date-and-no-timeの重複ではないと、あなたのモデルフィールドに注釈を付けます。このリンクでは、短い日付文字列の表示についてのみ説明しています。正しいhtml5データ型を持つ入力タグとは何の関係もありません。 – Fran

+0

@ EhsanSajjad:私はFranと同意します。これはディスプレイとは何も関係なく、レンダリングされたHTMLとは関係ありません。 –

+0

then reopenに投票してください:) –

答えて

3

datatype属性

public class Model1 
{ 
    [DataType(DataType.Date)] 
    public DateTime BegineDate { get; set; } 
} 
+0

'DataType'列挙型はどの名前空間ですか?そのシンボルを現在のプロジェクトの名前空間に解決できません。私はアセンブリの参照が不足しているのだろうかと思います。 –

+0

using System.ComponentModel.DataAnnotations; – Fran

+0

気にしないでください。私はそれを考え出した。私はクラスNHibernate.Type.DataTypeを持っているNHibernateを使用しているし、System.ComponentModel.DataAnnotations.DataTypeがあります。私の問題は名前空間の衝突です。ビジュアルスタジオはちょっと奇妙になりました。 –

関連する問題