2

我的代码类似于这个:http ://demos.telerik.com/aspnet-mvc/grid/editingajax

DateTime 部分视图:

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

和网格中的绑定:

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

我的模型类中的字段:

public DateTime Timestamp
    {
        get; set;
    }

但是,当我一天输入大于 12 的值时,我收到错误,该字段必须是日期。这太烦人了!如何解决?

4

2 回答 2

8

数据注释可以为 DatePicker 提供正确的数据类型来使用。将以下数据注释添加到类属性声明中:

[DataType(DataType.Time)]

剃刀视图:

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

捆绑:

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

班级:

[DataType(DataType.Time)]
public DateTime Timestamp
{
    get; set;
}
于 2015-01-30T19:49:45.490 回答
4

我有一个类似的问题。经过多次挠头和反复试验,这对我有用。

时间局部视图

@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 框未填写,它仍然无法验证。希望这可以帮助。

于 2012-09-20T10:00:51.327 回答