我正在使用不显眼的客户端验证。
我有一个带有以下数据注释的 ViewModel
[DisplayName("Entrytime")]
[DataType("Time")]
[RegularExpression(@"^(?[0-1]?[0-9]|[2][0-3]):[0-5][0-9]$", ErrorMessageResourceType = typeof(LocalizedResources), ErrorMessageResourceName = "Time")]
public DateTime? EntryTime { get; set; }
问题是客户端验证工作正常,使我能够在我的字段中输入例如 12:20 而不是 25:20。
但是在服务器上,如果我询问 ModelState.IsValid,我会在现场收到错误消息。
似乎问题位于我的正则表达式中的冒号之前。如果我将表达式更改为
[RegularExpression(@"^.*:[0-5][0-9]$",...
它工作正常。
但如果我有
[RegularExpression(@"^[0-2][0-9]:[0-5][0-9]$",...
它仍然不会在服务器上接受它。通过客户端验证,这些更改按预期工作。
客户端正则表达式解析和服务器端有区别吗?好像有点坑?!
谢谢