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 输入的值。

那可能吗?

输入这个我意识到我已经假设我要在@Html.EditorFor方法中更改 DateTime 的格式,我必须创建一个 EditorTemplate。这个假设正确吗?

4

1 回答 1

3

所以我想我会使用 EditorTemplate

如何使用该属性装饰您的视图模型[DisplayFormat]属性:

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

输入这个我意识到我已经假设我要在 @Html.EditorFor 方法中更改 DateTime 的格式,我必须创建一个 EditorTemplate。这个假设正确吗?

是的,这是改变格式的一种方式。另一种方法是使用 DisplayFormat 属性。

于 2013-04-15T07:44:06.667 回答