日期输入标记助手未显示数据库中的日期

Tir*_*dyr 9 asp.net-core-mvc asp.net-core

当我在编辑视图中使用以下代码时,它不会显示模型中的日期.

<input asp-for="OprettetDato" class="form-control"/>
Run Code Online (Sandbox Code Playgroud)

模型的属性声明如下:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0: dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime OprettetDato { get; set; }
Run Code Online (Sandbox Code Playgroud)

并且值在模型中传递

模型图片通过

为什么这不起作用?

Mar*_*cki 10

问题是[DataType(DataType.Date)]你的模型属性的属性使输入标签帮助器产生type="date"HTML属性,这在HTML5中导致固定的标准格式 - 请参阅此处的信息:有没有办法改变输入类型="日期"格式?

为了以适当的格式显示字段,删除 [DataType(DataType.Date)]属性,你会没事的.另外,为了在日期格式中使用正斜杠,您需要像这样转义它们:

[DisplayFormat(DataFormatString = @"{0:dd\/MM\/yyyy}", ApplyFormatInEditMode = true)]
public DateTime OprettetDato { get; set; }
Run Code Online (Sandbox Code Playgroud)

如果您想使用datepicker自定义日期格式,则需要使用一些自定义JavaScript解决方案.

  • 格式字符串无需转义即可使用正斜杠。以下工作:`[DisplayFormat(DataFormatString = "{0: dd/MM/yy}", ApplyFormatInEditMode = true)]` (2认同)
  • 当我删除输入框的数据类型渲染更改为日期时间。所以这不是我想要的东西。我无法覆盖日期的当前文本格式。我被困住了。 (2认同)