asp.net 核心 2.0 自定义输入时间 {mm:ss.fff}



是否可以在剃刀视图中的输入框中定义日期时间或时间跨度的自定义掩码或格式?(在本例中查找 {mm:ss.fff} 我已经在我的模型中尝试了许多组合,包括;

[Required (ErrorMessage ="please add a time")]
[Display(Name = "Clocked Time")]
[DisplayFormat(DataFormatString = "{0: mm:ss.fff}", ApplyFormatInEditMode = true)] 
public TimeSpan? Clockedtime { get; set; }

我认为您将很难获得TimeSpan的格式/输入掩码。我认为,您最好的选择是使用字符串作为输入类型并对其应用正则表达式。

[Required (ErrorMessage ="please add a time")]
[Display(Name = "Clocked Time")]
[RegularExpression(@"^(60|([0-5][0-9])):(60|([0-5][0-9]))(.[0-9]*)$", ErrorMessage = "Must be in format hh:mm.fff")]
public String ClockedtimeString { get; set; }
private TimeSpan Clockedtime => TimeSpan.Parse(ClockedtimeString);

如果用户输入的值不正确,这应该会在客户端提供验证。 您可以调整正则表达式以更好地满足您的需求(这不是我的专业领域(。

在控制器/razor 页面中,可以引用Clockedtime属性,该属性应包含解析的值。

最新更新