kendo调度程序可以为可能发生的事件提供一些选项。
.Model(m =>
{
m.Id(f => f.TaskID);
m.Field(f => f.Title).DefaultValue("No title");
m.Field(f => f.OwnerID).DefaultValue(1);
m.Field(f => f.Title).DefaultValue("No title");
m.RecurrenceId(f => f.RecurrenceID);
})
.Read("Read", "Agenda")
.Create("Create", "Agenda")
.Destroy("Destroy", "Agenda")
.Update("Update", "Agenda")
.Filter(filters =>
{
filters.Add(model => model.OwnerID).IsEqualTo(1).Or().IsEqualTo(2);
})
Read方法完美地从数据库中返回我的结果,当我尝试向调度程序插入新事件时,它调用Create方法,该方法在表中插入一个新行。
如果我想要编辑现有事件。我双击事件,更改信息并按保存。
我尝试使用一些断点调试代码,但从不调用Update。相反,它再次要求创建方法。
但是我可以在Create方法中添加以下内容:
public virtual JsonResult Create([DataSourceRequest] DataSourceRequest request, EventModel task)
{
if (ModelState.IsValid)
{
if (task.ID == null)
{
// Create an event
AllQueries.InsertEvent(task);
}
else
{
AllQueries.UpdateEvent(task);
}
}
return Json(new[] { task }.ToDataSourceResult(request, ModelState));
}
如果没有检查id等于“Null”,它会继续添加每个请求,因此在添加3个事件后它实际上会添加6个新事件。
此检查适用于创建新事件,但是当我更新事件时,它会扫描所有现有事件,直到id匹配,并且当它被发现时会被更改。这在开始时没有问题,但是当很多事件被添加到调度程序时确实成为一个。
如何让调度程序在更改时调用Update方法而不是调用create方法?
答案 0 :(得分:0)
ID必须是非资本的。一旦你将名为ID的主键更改为id,一切正常。