2012-05-08 66 views
2

我的代碼是類似於此:http://demos.telerik.com/aspnet-mvc/grid/editingajaxTimepicker領域必須是日期 - 驗證失敗

日期時間局部視圖:

@model DateTime? 
@(Html.Telerik().DatePickerFor(m => m)) 

和在網格中的結合:

columns.Bound(p => p.Timestamp).Width(110); 

而我模特班的領域:

public DateTime Timestamp 
    { 
     get; set; 
    } 

但是,當我輸入值大於12的值一天時,我得到錯誤,該字段必須是日期。這太討厭了!如何解決它?

回答

3

我有類似的問題。 經過多次頭部搔抓和反覆試驗,這對我來說是有效的。

時間局部視圖

@model DateTime? 

@(Html.Kendo().TimePickerFor(m => m) 
.Min(new DateTime(2010, 1, 1, 10, 0, 0)) //Set min time of the timepicker 
     .Max(new DateTime(2010, 1, 1, 20, 0, 0)) //Set min date of the timepicker 
     .Value(DateTime.Now) //Set the value of the timepicker 
) 

視圖模型

[Required(AllowEmptyStrings = false, ErrorMessage = "Please select a start time")] 
[Display(Name = "Start time")] 
[DataType(DataType.Time)] 
[UIHint("Time")] 
public DateTime StartTime { get; set; } 

@Html.EditorFor(model=>model.StartTime) 
@Html.ValidationMessageFor(model=>model.StartTime) 

不顯眼的驗證,現在似乎工作和錯誤消息 「開始時間必須是日期」似乎並沒有出現。如果timepicker框未填充,它仍然無法驗證。 希望這有助於。

6

數據註釋可以提供DatePickerFor正確的數據類型來使用。以下數據標註添加到類財產申報:

[DataType(DataType.Time)] 

Razor視圖:

@model DateTime? 
@(Html.Telerik().DatePickerFor(m => m)) 

綁定:

columns.Bound(p => p.Timestamp).Width(110); 

類:

[DataType(DataType.Time)] 
public DateTime Timestamp 
{ 
    get; set; 
} 
+0

這爲我工作。 – camainc

+0

感謝您的解決方案。它像一個魅力。 –