使用格式掩码mm:ss在视图中显示TimeSpan模型

本文关键字:视图 显示 TimeSpan 模型 ss 格式 掩码 mm | 更新日期: 2023-09-27 18:24:05

我有一个TimeSpan模型,我正试图在视图(@Html.EditorFor)中以mm:ss(持续时间以分钟和秒为单位)的掩码格式显示它。我不想要/不需要小时或上午/下午,但我的视图无一例外地显示掩码="--:--",这是默认格式"hh:ss tt"。我无法让它显示任何其他屏蔽格式。请参见下面的"模型和视图"。我在这里完全没有主意了。请帮忙!

型号:

[DataType(DataType.Time)]
[DisplayFormat(DataFormatString = "{0:mm'':ss}", ApplyFormatInEditMode = true)]
public TimeSpan? LengthAct { get; set; }

视图:

@Html.EditorFor(m => m.LengthAct, new { htmlattributes = new { @class = "form-control", data_val = "true", data_val_required = "Length is required" } })

使用格式掩码mm:ss在视图中显示TimeSpan模型

也许这可以帮助您:

@Html.TextBoxFor(x => x.LengthAct, "{0:mm'':ss}")

问候!!

如果将DataType.Time应用于属性,然后使用EditorFor进行渲染,则将获得HTML5时间输入。在受支持的浏览器中,这通常会作为格式化控件呈现给用户,允许您单独键入小时和分钟。至少如果浏览器使用的是en-US本地,时间将为12小时格式,并且还会有AM/PM选择器。我不确定像Chrome这样的浏览器在其他地区显示什么,因为我还没有亲自尝试过。我假设如果该地区使用24小时时间,你就不会有AM/PM选择器,但我只是猜测。

不管怎样,关键是你说你不想要的所有东西实际上都是浏览器内置控制的一部分。如果你不喜欢它,你唯一真正的选择就是使用类型为text的输入。您需要删除DataType注释(尽管这会影响字段的验证),或者使用Html.TextBoxFor而不是Html.EditorFor