HTML 输入类型日期上的模型中的日期不显示

标签 date razor asp.net-mvc-5

我试图在创建和编辑 Razor View 时显示日期类型输入...日期选择器工作正常,但在编辑时我确实从模型中获取了值,但日期选择器不显示它...

查看

<div class="form-group form-md-line-input">
    @Html.TextBoxFor(model => model.InitialDate, new { @class = "form-control", type = "date" })
    @Html.ValidationMessageFor(model => model.InitialDate)
    @Html.LabelFor(model => model.InitialDate)
</div>

型号

public Nullable<System.DateTime> InitialDate { get; set; }

我尝试过使用DataAnnotations,但同样的事情发生了,日期选择器只允许我选择创建的日期,但在编辑时它不会显示模型中的日期,尽管当我查看时在呈现的 HTML 代码中,正在设置日期值,但控件不显示它。

HTML View

<input class="form-control" data-val="true" data-val-date="The field InitialDate must be a date." id="InitialDate" name="InitialDate" type="date" value="3/3/2015 12:00:00 AM">

我还从浏览器的开发人员工具中删除了属性值的时间,以查看它是否有效,但它也不起作用......

<input class="form-control" data-val="true" data-val-date="The field InitialDate must be a date." id="InitialDate" name="InitialDate" type="date" value="3/3/2015">

如何在日期选择器中显示模型的日期?任何帮助将不胜感激...

最佳答案

如果您使用它来生成浏览器 HTML5 日期选择器实现,则日期的格式需要为 yyyy-MM-dd (ISO 格式)。使用 TextBoxFor() 它需要

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

或者,将以下属性添加到属性

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> InitialDate { get; set; }

并在 View 中使用

@Html.EditorFor(m => m.InitialDate)

请注意,这会添加 type="date" 属性

关于HTML 输入类型日期上的模型中的日期不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31097748/

相关文章:

PHP每日奖金

java - 如何将 Calendar 对象设置为当前日期,但包含 HH :mm:ss 的 SimpleDateFormat 中的时间

c# - 使用 Razor 为类定义别名

asp.net - 在asp.net mvc中提供动态角色(角色不固定,不断更新)

javascript - 在所有脚本完全加载之前如何防止单击图像

css - 如何在 Bootstrap 网格中获得 18 列

java使用值字符串创建日期对象

date - java.time.format.DateTimeParseException : Text '1963-03-24T00:00:00.000+01:00' could not be parsed at index 19 1000

c# - 在 MVC 3 博客中显示嵌套评论

c# - 在 ASP.NET 中嵌入饼图(Razor 语法)