0
我正在使用不顯眼的客戶端驗證。MVC RegularExpression註解不同的結果客戶端 - 服務器
我有以下數據註解
[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]$",...
它仍然不會接受它的服務器上。這些更改與客戶端驗證一樣符合預期。
與客戶端的regularexpression解析和服務器端有區別嗎?這似乎有點兒車?!
感謝
嗯 - 模型綁定者實際上給了我一個DateTime和正確的時間。其日期部分設置爲今天。此外,它沒有解釋爲什麼`^。*:[0-5] [0-9] $`有效,但是^ [0-2] [0-9]:[0-5] [0-9 ] $`不是。這就是說 - 我用你的解決方法,它工作正常。我希望看到在接受你的之前是否有其他答案出現。 – CracyD 2011-08-17 13:36:15