2016-02-29 14 views
11

私のmvc 6プロジェクトでtaghelper要素を持つ "asp-format"タグを使用している問題に直面しています。タグヘルパーに "asp-format"が適用されていません

アイデアは、日付入力要素をこのようにフォーマットすることである。

<input asp-for="StartDate" asp-format="{0:dd/MM/yyyy}" /> 

この「開始日」プロパティは私のモデルであり、このように宣言:この、奇妙な理由のため

public DateTime StartDate {get; set; } 

を要素は決してフォーマットされず、常にこのように表示されます:

---> 02/29/2016 00:00:00 

私はviewmodelクラスを作成しました人物モデル全体を保持するプロパティを定義しました。

public class PersonViewModel 
{ 
    public Person Johndoe {get; set; } 
} 

このクラスをビューで使用すると、フォーマットが機能します。

<input asp-for="Johndoe.StartDate" asp-format="{0:dd/MM/yyyy}" /> 

---> 29/02/2016 
+0

解決済みこれはタグヘルパーを使用していますか?私はあなたが質問の始めに持っていたやり方でそれをやろうとしましたが、それは私のために働いていました。 – akousmata

答えて

4

あなたは単に

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

2のように

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] 

    public DateTime StartDate {get; set; } 

やビューのようにモデル自体でフォーマットを提供することができます)また、モデルクラスで日付フォーマットを提供せずにこれを行うことができます

@Html.TextBoxFor(m => m.StartDate, "{0:dd/MM/yyyy}") 
+2

私は実際にタグヘルパーのアプローチでmvc 6を使用しているので、HTMLヘルパーを使用できません。 – Beetlejuice

+1

私はまた、モデルの表示形式を定義する大きなファンでもありません。同じモデルを使用し、日付を2つの異なる形式(つまり、1つの場所の時間と別の場所の時間で表示)で表示する場合はどうなりますか? – akousmata

関連する問題