如何让Razor视图的DateTime输入仅显示时分秒,去除微秒
解决Razor视图DateTime输入框显示微秒及验证错误问题
方案1:通过模型属性配置时间格式
在DateTime属性上添加DisplayFormat特性,指定时间格式并开启编辑模式下的格式应用,即可让输入框按指定格式渲染,不再显示微秒:
[DataType(DataType.Time)] [DisplayFormat(DataFormatString = "{0:HH:mm:ss}", ApplyFormatInEditMode = true)] public DateTime Time { get; internal set; }
DataFormatString = "{0:HH:mm:ss}":设置时间显示为「小时:分钟:秒」格式,若只需显示时分可改为{0:HH:mm}ApplyFormatInEditMode = true:确保编辑状态下输入框也应用该格式
方案2:改用TimeSpan类型(更适配仅需时间的场景)
如果字段仅需存储时间而非完整日期时间,改用TimeSpan类型能避免DateTime自带的日期部分引发验证问题,同时自动适配时间输入框:
[DataType(DataType.Time)] public TimeSpan Time { get; internal set; }
方案3:直接在输入框指定格式
若不想修改模型属性,可直接在Razor视图的输入框上指定格式:
<div class="form-group"> <input asp-for="@Model.Time" asp-format="{0:HH:mm:ss}" /> </div>
内容的提问来源于stack exchange,提问作者James Campbell
相关产品推荐
相关产品推荐

