HTML 5输入日期未显示指定的值

时间:2019-05-17 18:33:33

标签: c# html date asp.net-core razor

NET Core **项目,并在我的其中一个页面上编辑记录,<input type="date">并没有显示我在Razor中创建视图时传递的值。

这是我的剃刀代码:

<div class="input-group">
    <div class="input-group-prepend">
        <i class="input-group-text fa fa-user"></i>
    </div>
    @Html.TextBoxFor(model => model.NewPriceList.PriceFrom, 
                     new { @class = "form-control", @type = "date", 
                           @Value = Model.NewPriceList.PriceFrom })
</div>

这就是我在以HTML创建的Google Chrome开发者工具中看到的内容

<input class="form-control" data-val="true" 
       data-val-required="The Obwiązuje od field is required." 
       name="NewPriceList.PriceFrom" type="date" 
       value="2/15/2019 12:00:00 AM">

但是由于某种原因,它无法正确呈现,这就是我得到的:

enter image description here

2 个答案:

答案 0 :(得分:0)

将日期格式设置为ShortDate。 DateControl不喜欢一天中的时间:

<input class="form-control" data-val="true"
       data-val-required="The Obwiązuje od field is required."
       name="NewPriceList.PriceFrom" type="date"
       value=@DateTime.Now.ToShortDateString()>

答案 1 :(得分:0)

您需要指定rfc3339 format

@Html.TextBoxFor(
    model => model.NewPriceList.PriceFrom , 
    "{0:yyyy-MM-dd}",
    new { 
        @type= "date",
        @class = "form-control"
        @value = Model.NewPriceList.PriceFrom
    }
)

或者,如果您只想使用模型来呈现值,则不必指定@value=

@Html.TextBoxFor(
    model => model.NewPriceList.PriceFrom , 
    "{0:yyyy-MM-dd}",
    new { 
        @type= "date",
        @class = "form-control"
    }
)

或者直接使用InputTagHelper

<input asp-for="NewPriceList.PriceFrom" class = "form-control" >

如果您使用[DataType(DataType.Date)] 属性注释,InputTagHelper将自动为您选择正确的格式。