我有一个Kendo Grid,它有一个带有timepicker的EditorTemplate。时间戳工作得很好,时间显示在网格上很好,但是当我尝试保存时,错误的是说对象的值不正确。以下是我的代码。当我点击保存时,它告诉错误说“价值'2/24/2014 07:00:00 AM'对于Brief无效。时间是我从时间选择器中选择的时间。我如何只发送时间而不用日期,或者将时间仅保存到数据库的最佳选项是什么?
ViewModel(部分):
[UIHint("_TimePicker")]
public TimeSpan? Brief { get; set; }
[UIHint("_TimePicker")]
public TimeSpan? KickOff { get; set; }
[UIHint("_TimePicker")]
public TimeSpan? Debrief { get; set; }
网格:
@(Html.Kendo().Grid<Optic_Freedom.Areas.Scheduling.Models.ExerciseBreakdownViewModel>()
.Name(string.Format("Grid"))
.Columns(columns =>
{
columns.Bound(p => p.Personnel.Name).Width(100);
columns.Bound(p => p.NumberOfTeams).Width(80);
columns.Bound(p => p.TeamMembers).Width(100);
columns.Bound(p => p.Vehicles).Width(100);
columns.Bound(p => p.Brief).Format("{0:HH:mm}").EditorTemplateName("_TimePicker1").Width(100);
columns.Bound(p => p.KickOff).Format("{0:HH:mm}").EditorTemplateName("_TimePicker2").Width(100);
columns.Bound(p => p.Debrief).Format("{0:HH:mm}").EditorTemplateName("_TimePicker3").Width(100);
})
EditorTemplate:
@using Kendo.Mvc.UI
@model TimeSpan?
@(Html.Kendo().TimePickerFor(m=>m)
.Value(@Model.GetValueOrDefault())
.Min("06:00")
.Max("22:00")
.Format("{0:HH:mm}"))
答案 0 :(得分:1)
看起来你需要将它存储在DateTime结构中并解析它的时间。 TimeSpan用于存储一段时间(例如35分钟),而不是特定时间(美国东部时间11:30)。 Jon Skeet在a related answer中讨论了他的Noda Time库,这可能有所帮助。