C# MVC Razor Datatype.time 编辑器用于在编辑时未以正确的格式显示存储的数据



我在实体中有一个时间数据类型属性字段:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:hh:mm}")]
[DataType(DataType.Time)]
public DateTime BeginTime { get; set; }

在剃刀视图中,我有此代码来创建和编辑

@Html.EditorFor(model => model.BeginTime, new { htmlAttributes = new { @class = "form-control" } })

在创建时,我可以使用时间选择器以正确的格式填写此字段,例如下午 01:15。 在数据库上,它以正确的日期时间格式"2017-10-12 13:15:00.000"存储。

但在编辑时,它显示凌晨 01:15。如果我再次保存对象,它会修改数据库损坏数据的字段,时间为上午 01:15("2017-10-12 01:15:00.000")。

我试过这个:

在"hh:mm tt"中设置属性的显示格式

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:hh:mm tt}")]
[DataType(DataType.Time)]
public DateTime BeginTime { get; set; }

但是在编辑时,它为字段取一个空值,例如 (--:-- ---) 删除保存的数据。

有人知道如何在编辑视图上解决此格式问题吗?

试试这个:-

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:HH:mm}")]

欲了解更多信息:-hh vs hh :-Java HH:mm 和 hh:mm 在 SimpleDateFormat 上的区别

希望它能奏效。

最新更新