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

时间:2017-02-16 13:31:51

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

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

<input asp-for="OprettetDato" class="form-control"/>

模型的属性声明如下:

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

并且值在模型中传递

Picture of the model passed

为什么这不起作用?

3 个答案:

答案 0 :(得分:9)

问题是你的模型属性上的属性[DataType(DataType.Date)]使得输入标记帮助器生成type="date" HTML属性,这在HTML5中会导致固定的标准格式 - 请参阅此处的信息:Is there any way to change input type="date" format? < / p>

要以正确的格式显示字段,删除 [DataType(DataType.Date)]属性,您就可以了。 另外,为了使用日期格式的正斜杠,你需要像这样转义它们:

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

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

答案 1 :(得分:0)

对我来说,这确实令人困惑,需要删除什么,不需要删除什么。我做了什么-

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

视图,我输入的输入类型为“文本”,而不是datetime,date或datetime-local

 <div class="form-group">
    <label>@SharedLocalizer["CalledOnText"]:</label>
        <div class="input-group date">
            <input type="text" class="form-control" asp-for="CalledOn">
            <div class="input-group-addon">
                <span class="glyphicon glyphicon-calendar"></span>
            </div>
        </div>
  </div>

日期纠察队形式的引导程序

 $(".date").datepicker({
                format: 'dd/mm/yyyy'
        });

答案 2 :(得分:0)

这是我的问题的解决方案

https://forums.asp.net/t/2167833.aspx?Date+control+is+not+showing+value+from+model

[DisplayFormat(ApplyFormatInEditMode = false, DataFormatString = "{0:dd/MM/yyyy}")]

ApplyFormatInEditMode = false