Kendo ui 剑道UI MVC网格日期编辑器模板未显示网格中的值

Kendo ui 剑道UI MVC网格日期编辑器模板未显示网格中的值,kendo-ui,kendo-grid,kendo-asp.net-mvc,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我有以下看法 @using BecomingAKendoUISamurai.ViewModels <h2>Step 21 MVC Grid CRUD</h2> <br/> @(Html.Kendo().Grid<SamuraiViewModel>() .Name("SamuraiGrid") .Columns(columns => { columns.Bound(m => m.Id).Hidde

我有以下看法

@using BecomingAKendoUISamurai.ViewModels

<h2>Step 21 MVC Grid CRUD</h2>

<br/>

@(Html.Kendo().Grid<SamuraiViewModel>()
    .Name("SamuraiGrid")
    .Columns(columns =>
    {
      columns.Bound(m => m.Id).Hidden();
      columns.Bound(m => m.FirstName);
      columns.Bound(m => m.LastName);
      columns.Bound(m => m.RankId).ClientTemplate("#=Rank#");
      columns.Bound(m => m.DateOfBirth).Width(125);
      columns.Bound(m => m.DateOfDeath).Width(125);
      columns.Command(command => { command.Edit(); command.Destroy(); }).Width(200);
  })
  .DataSource(source => source
    .Ajax()
    .Sort(s => s.Add(p => p.LastName).Ascending())
    .PageSize(5)
    .Model(model =>
    {
        model.Id(m => m.Id);
    })
    .Create(create => create.Action(MVC.Home.ActionNames.CreateSamuraiMvc, MVC.Home.Name))
    .Read(read => read.Action(MVC.Home.ActionNames.ReadSamuraiMvc, MVC.Home.Name))
    .Update(update => update.Action(MVC.Home.ActionNames.UpdateSamuraiMvc, MVC.Home.Name))
    .Destroy(destroy => destroy.Action(MVC.Home.ActionNames.DestroySamuraiMvc, MVC.Home.Name))

)
.Editable(editable => editable.Mode(GridEditMode.InLine)) //PopUp and InCell 
.Sortable()
.Pageable(p => p.PageSizes(new int[]{2,4,6}))
.Filterable()
.ToolBar(toolbar => toolbar.Create())
  )
调用控制器的读取方法

public virtual JsonResult ReadSamuraiMvc([DataSourceRequest] DataSourceRequest request)
{
  return Json(GetSamuraiViewModels().ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
private List<SamuraiViewModel> GetSamuraiViewModels()
{
  var viewModel = new List<SamuraiViewModel>();

  var samurais = samuraiService.ReadSamurai().ToList();
  if (samurais.Any())
  {
    samurais.ForEach(s => viewModel.Add(new SamuraiViewModel(s)));
  }
  return viewModel;
}
公共虚拟JsonResult ReadSamuraiMvc([DataSourceRequest]DataSourceRequest请求)
{
返回Json(GetSamuraiViewModels().ToDataSourceResult(request),JsonRequestBehavior.AllowGet);
}
私有列表GetSamuraiViewModels()
{
var viewModel=新列表();
var samurais=samuraiService.ReadSamurai().ToList();
if(sumurais.Any())
{
ForEach(s=>viewModel.Add(新的SamuraiViewModel));
}
返回视图模型;
}
我可以看到网格中的所有数据。例如,第1行具有: “哈托里”“汉佐”“大师”“1541年3月15日”“1563年4月16日”编辑删除

当我单击编辑按钮时,名字、姓氏和排名都具有行中定义的值,但出生日期和死亡日期都为空

我该如何解决这个问题

我尝试过使用内联和弹出模式,得到了相同的结果。
提前谢谢

尝试使用DatePickerFor:

@model DateTime?
@(Html.Kendo().DatePickerFor(m => m)
      .Format("MM/dd/yyyy")
)

您是否尝试过将ui提示从date of birth属性中去掉,并尝试使用mvc包装提供的默认日期时间选择器。或者尝试使用kendo().datepickerfor(model),这将为您绑定值。还有,为什么不检查model.hasvalue是否为空如果使用可为空的dateTime当我从模型中删除UIHint时,我会得到默认的dateTime选择器编辑器,但它也是空的。这是我最初尝试的,但不起作用。然后我找到了一行,其中的DateOfBirth实际上包含数据,我发现这完全是奇怪的。因此,我更改了Hatori Hanzo的出生日期和死亡日期(在我上面的例子中,从“1541年3月15日”“1563年4月16日”更改为“1941年3月15日”和“1963年4月16日”当我刷新网格并按下“编辑”按钮时,数据就在那里。在某个日期之前允许值似乎有问题。1900年1月1日之前的任何值都不会在编辑模式下显示。这是怎么回事?我添加了.Min(新日期时间(1000,1,1))到Date.cshtml文件,现在我看到了我的所有日期。我开始记得日期选择器的默认最小值是1/1/1900,因此它在此之前没有显示日期。
public virtual JsonResult ReadSamuraiMvc([DataSourceRequest] DataSourceRequest request)
{
  return Json(GetSamuraiViewModels().ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
private List<SamuraiViewModel> GetSamuraiViewModels()
{
  var viewModel = new List<SamuraiViewModel>();

  var samurais = samuraiService.ReadSamurai().ToList();
  if (samurais.Any())
  {
    samurais.ForEach(s => viewModel.Add(new SamuraiViewModel(s)));
  }
  return viewModel;
}
@model DateTime?
@(Html.Kendo().DatePickerFor(m => m)
      .Format("MM/dd/yyyy")
)