新的kendo调度程序事件不会调用控制器方法

时间:2014-08-18 14:50:53

标签: kendo-asp.net-mvc kendo-scheduler

我正在尝试向数据库添加新的调度程序事件。它被添加到调度程序数据源并且在调度程序中可见,但不是调用控制器Create方法。 编辑或删除新添加的事件也不要调用控制器方法,而是更改数据源。

已存在的事件运作良好。

型号:

public class ResourceSchedulerModel : ISchedulerEvent
{
    public string Title { get; set; }
    public DateTime Start { get; set; }
    public DateTime End { get; set; }
    public string Description { get; set; }
    public bool IsAllDay { get; set; }
    public string RecurrenceRule { get; set; }
    public string RecurrenceException { get; set; }
    public string EndTimezone { get; set; }
    public string StartTimezone { get; set; }
    public int BTS_Id { get; set; }

    public ResourceSchedulerModel() { }

    public ResourceSchedulerModel(BusyTimeSlot bts)
    {
        BTS_Id = bts.BTS_Id;
        Start = bts.BTS_From;
        End = bts.BTS_To;
        Title = bts.BTS_Name;
        Description = bts.BTS_Description;
        ResId = bts.BTS_RES_Id;
    }
}

控制器方法:

    public virtual JsonResult Read([DataSourceRequest] DataSourceRequest request)
    {
        EntityWrapper ew = new EntityWrapper();
        List<BusyTimeSlot> btss = ew.GetAllBusyTimeSlots();
        List<ResourceSchedulerModel> sm = new List<ResourceSchedulerModel>();
        foreach (BusyTimeSlot b in btss)
            sm.Add(new ResourceSchedulerModel(b));
        return Json(sm.ToDataSourceResult(request));

    }

    public virtual JsonResult Destroy([DataSourceRequest] DataSourceRequest request, ResourceSchedulerModel task)
    {
        if (ModelState.IsValid)
        {
           // delete
        }

        return Json(new[] { task }.ToDataSourceResult(request, ModelState));
    }

    public virtual JsonResult Create([DataSourceRequest] DataSourceRequest request, ResourceSchedulerModel task)
    {
            if (ModelState.IsValid)
            {
                //add
            }

            return Json(new[] { task }.ToDataSourceResult(request, ModelState));
    }

    public virtual JsonResult Update([DataSourceRequest] DataSourceRequest request, ResourceSchedulerModel task)
    {
        if (ModelState.IsValid)
        {
           // edit
        }

        return Json(new[] { task }.ToDataSourceResult(request, ModelState));
    }

查看:

@(Html.Kendo().Scheduler<SchedulerTry.Models.ResourceSchedulerModel>()
    .Name("scheduler")
    .Date(new DateTime(2014, 10, 11))
    .MinorTickCount(1)
    .Views(views =>
    {
        views.DayView();
        views.WeekView(weekView => weekView.Selected(true));
        views.MonthView();
        views.AgendaView();
    })
    .DataSource(d => d
        .Model(m => {
            m.Id(f => f.BTS_Id);
            m.Field(f => f.Title).DefaultValue("No title");
        })
        .Read("Read", "Resource")
        .Create("Create", "Resource")
        .Destroy("Destroy", "Resource")
        .Update("Update", "Resource")
    )

)

此外,当我尝试关闭或取消新事件的编辑窗口时,我收到错误

Uncaught TypeError: Cannot read property 'BTS_Id' of undefined kendo.all.min.js:11

2 个答案:

答案 0 :(得分:0)

尝试按以下方式更新BTS_Id,如下所示:

    public int bTS_Id;
    public string BTS_Id 
    {
        get
        {
            return bTS_Id;
        }
        set
        {
            bTS_Id = value;
        }
    }

答案 1 :(得分:0)

我的不好,我在控制器中有另一个Create方法。