0

ビューでこのコードを使用すると:

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

次のようにフォーマットされた日付を取得します。

14-10-2012 11:44:34

ここで、日付のみをこの形式で表示したいと思います。

2012-10-14

だから私はEditorTemplate

しかし、EditorTemplateゼロから始める/HTMLなしで始めると、最終的にこれをレンダリングする必要があります(これは、このコードを使用するときに.Netによってレンダリングされるものです@Html.EditorFor(model => model.DateAdded):

<input class="text-box single-line" data-val="true" data-val-date="The field DateAdded must be a date." data-val-required="The DateAdded field is required." id="DateAdded" name="DateAdded" type="datetime" value="14-10-2012 11:44:34" />

<input class="text-box single-line" data-val="true" data-val-date="The field DateAdded must be a date." data-val-required="The DateAdded field is required." id="DateAdded" name="DateAdded" type="datetime"フレームワークが将来変更する可能性があり、テンプレートがその (古い) コードで動かなくなるため、これらすべてのコード ( ) を重複させないようにすることはできますか?

したがって、エディター テンプレートで言いたいことは次のとおりです。DateTime 入力の値を別の方法でフォーマットすることを除いて、通常行うすべてのことを行います。

それは可能ですか?

これを入力すると、メソッドで DateTime の形式を変更するには@Html.EditorFor、EditorTemplate を作成する必要があると仮定していることに気付きました。その仮定は正しいですか?

4

1 に答える 1

3

だから私は EditorTemplate を使うと思った

属性を使用してビューモデルのプロパティを装飾するのはどうですか[DisplayFormat]:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yyyy}")]
public DateTime DateAdded { get; set; }

これを入力すると、@Html.EditorFor メソッドで DateTime の形式を変更するには、EditorTemplate を作成する必要があると仮定していることに気付きました。その仮定は正しいですか?

はい、それは形式を変更する 1 つの方法です。もう 1 つの方法は、DisplayFormat 属性を使用することです。

于 2013-04-15T07:44:06.667 に答える