Kendo调度程序从不调用更新方法MVC 5

时间:2016-11-30 14:04:45

标签: c# asp.net-mvc kendo-ui asp.net-mvc-5

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方法,该方法在表中插入一个新行。

如果我想要编辑现有事件。我双击事件,更改信息并按保存。

enter image description here

我尝试使用一些断点调试代码,但从不调用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方法?

1 个答案:

答案 0 :(得分:0)

ID必须是非资本的。一旦你将名为ID的主键更改为id,一切正常。