是否可以在razor视图的输入框中定义DateTime或TimeSpan的自定义掩码或格式?(在这种情况下,寻找{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; }
发布于 2018-07-03 03:57:00
我认为您将很难获得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);
如果用户输入了不正确的值,这应该会在客户端提供验证。您可能可以调整正则表达式以更好地满足您的需求(这不是我的专业领域)。
在您的控制器/剃刀页面中,您可以引用Clockedtime
属性,该属性应包含已解析的值。
https://stackoverflow.com/questions/51140051
复制相似问题