2016-11-30 6 views
0

В планировщике кендо есть несколько вариантов событий, которые могут произойти.Планировщик Kendo никогда не вызывает метод обновления MVC 5

.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, который вставляет новую строку в таблице.

Если есть события, которые я хочу изменить. Я дважды щелкаю по событию, меняю информацию об этом и нажимаю save.

enter image description here

Я попытался отладки кода с некоторыми контрольными точками, но обновление никогда не вызывается. Вместо этого он снова вызывает метод create.

Я могу однако добавить следующий код в метод 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)); 
    } 

Без проверки на идентификатор равным «Null» он продолжает добавлять каждый запрос когда-либо сделал так после добавления 3 события, которые фактически добавляет 6 новых событий.

Эта проверка работает для создания новых событий, но когда я обновляю событие, оно сканирует все события exisitng до тех пор, пока идентификатор не будет найден, и когда он будет найден, он будет изменен. Это не проблема с самого начала, но она становится одной, когда в планировщик добавляется много событий.

Как заставить Планировщика вызывать мой метод обновления при изменении вместо вызова метода create?

+0

Но если идентификатор не является нулевым, это означает его право на обновление? else create .. Я не получил ваш этот оператор ', но когда я обновляю событие, он сканирует все события exisitng до тех пор, пока не будет найден идентификатор, и когда он будет найден, он будет изменен.' –

+0

, если task.ID не равен нулю, это означает он имеет идентификатор. когда я отлаживаю планировщик и прохожу через шаги 1 к 1, он проходит через все существующие события в базе данных до тех пор, пока не найдет тот, у кого тот же идентификатор, а затем обновит это конкретное событие. –

+0

, но это произойдет даже в вашем методе «Обновить»? правильно? –

ответ

0

Идентификатор должен быть некапитальным. Как только вы измените первичный ключ с идентификатором на id, все будет работать нормально.

Смежные вопросы