如何在使用EditorTemplate时阻止自己复制框架代码

时间:2013-04-14 09:57:47

标签: asp.net-mvc asp.net-mvc-4

当我在我的视图中使用此代码时:

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

我得到的格式如下:

14-10-2012 11:44:34

现在我想只显示日期和格式。

2012-10-14

所以我想我会使用EditorTemplate

但是在EditorTemplate我从头开始/我从没有HTML开始,我必须最终呈现这个(当我使用这个代码@Html.EditorFor(model => model.DateAdded)时,这是.Net呈现的内容:< / p>

<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。这个假设是否正确?

1 个答案:

答案 0 :(得分:3)

  

所以我以为我会使用EditorTemplate

如何使用[DisplayFormat]属性修饰视图模型属性:

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

输入这个我意识到我已经做出了让我改变的假设   @ Html.EditorFor方法中的DateTime格式,我要创建一个   EditorTemplate。这个假设是否正确?

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