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

时间:2015-11-24 19:02:10

标签: c# asp.net-mvc formatting data-annotations timespan

我有一个TimeSpan模型,我试图在一个视图(@ Html.EditorFor)中显示,屏蔽格式为mm:ss(以分钟和秒为单位测量的持续时间)。我不想要/需要小时或上午/下午,但我的视图无异常显示mask =“ - : - - ”这是默认格式“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" } })

2 个答案:

答案 0 :(得分:0)

也许这可以帮到你:

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

问候!!

答案 1 :(得分:0)

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

无论如何,关键在于你说你不想要的所有内容实际上都是浏览器内置控件的一部分。如果您不喜欢它,您唯一真正的选择是使用text类型的输入。您需要删除DataType注释(尽管这会影响字段的验证)或使用Html.TextBoxFor代替Html.EditorFor