0

我正在尝试向数据库添加一个新的调度程序事件。它已添加到调度程序数据源并在调度程序中可见,但不调用控制器的 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
4

2 回答 2

0

尝试更新 BTS_Id 如下初始化,如下所示:

    public int bTS_Id;
    public string BTS_Id 
    {
        get
        {
            return bTS_Id;
        }
        set
        {
            bTS_Id = value;
        }
    }
于 2014-08-19T13:08:10.243 回答
0

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

于 2014-08-20T15:17:33.587 回答