2015-05-06 36 views
1

如果我有像一個視圖模型屬性:爲什麼MVC FluentValidation InclusiveBetween總是會引發DateTime錯誤?

[DataType(DataType.DateTime)] 
public DateTime? MyDate{ get; set; } 

而且這樣的驗證規則:

public class YourDetailsViewModelValidator : AbstractValidator<YourDetailsViewModel> 
{ 
    public YourDetailsViewModelValidator() 
    {   
     RuleFor(x => x.MyDate)     
      .InclusiveBetween(startDate, endDate) 
       .WithMessage("error"); 
    }      
} 

爲什麼會出現錯誤火不管什麼日期輸入?

我確實看到類似的事情發生enter link description here但答案最終被接受,所以我希望它可以正常工作。

+0

您是否在客戶端或服務器端說過失敗,並且您檢查了值綁定是否正確?其在客戶端上是 –

+0

。這一切似乎都受到了妥善的約束。 – davy

回答

0

錯誤可以通過jquery.validate插件日期格式化和MVC助手格式化中的差異來解釋。只要看看在你的視圖生成html,並使用

[DisplayFormat(DataFormatString="...")] // format string instead of dots 

使data-val-mindata-val-max屬性都符合輸入value格式(如果他們沒有,當然)。

如果值和驗證屬性格式相同,但驗證仍然失敗 - 請確保jquery.validate具有適當的格式。在這種情況下,您應該更改ASP.NET MVC應用程序文化以符合jquery.validate格式,反之亦然 - 更改jquery.validate格式以符合應用程序。

問及如此相似的問題:提供here

First

Second

.NET日期格式選項。

相關問題