ASP.NET MVC:如何在Index视图中仅显示日期(不显示时间)?
解决Index视图中DateTime仅显示日期的问题
问题场景
模型代码
public DateTime? FromDate { get;set; }
输入视图代码
<div class="form-group"> <label class="label other"> From Date </label> <div class="col-md-10"> @Html.EditorFor(model => model.FromDate, new { htmlAttributes = new { @class = "form-control", type = "Date", min = "1944-01-01", max = "2019-01-01" } }) @Html.ValidationMessageFor(model => model.FromDate, "", new { @class = "text-danger" }) </div> </div>
通过日历选择器输入日期后,Index视图中会连带时间(如1/1/2020 12:00:00 AM)显示,需求是仅展示日期部分。
解决方法
方法1:模型层添加格式化特性
在模型属性上标注DisplayFormat,统一控制显示格式:
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = false)] public DateTime? FromDate { get; set; }
之后在Index视图中使用@Html.DisplayFor(model => model.FromDate),即可自动渲染为纯日期格式。
方法2:视图层直接格式化输出
无需修改模型,直接在视图中对日期值格式化:
@Model.FromDate?.ToString("yyyy-MM-dd")
或者使用String.Format:
@String.Format("{0:yyyy-MM-dd}", Model.FromDate)
注:?.运算符用于处理FromDate为null的情况,避免空引用异常。
方法3:DisplayFor指定格式参数
调用DisplayFor时直接传入格式字符串:
@Html.DisplayFor(model => model.FromDate, "{0:yyyy-MM-dd}")
内容的提问来源于stack exchange,提问作者Narmeen
相关产品推荐
相关产品推荐

