Search code examples
jsonasp.net-mvckendo-uikendo-schedulerkendo-datasource

Kendo UI Scheduler and ASP.NET MVC


Trying to make work Kendo UI with ASP.NET MVC. I can use ready-to-work toolkit, but it will tie front-end to back-end; that's inappropriate, so I'm doing all manually. I've bound datasource

dataSource: {
                batch: true,
                transport: {
                    read: {
                        url: "http://192.168.0.34/FRINGE/api/tasks",
                        dataType: "json"
                    },

modified schema

schema: {
    model: {
        id: "TaskID",
        fields: {
            taskId: { from: "TaskID", type: "number" },
            title: { from: "Title", defaultValue: "No title", validation: { required: true } },
            start: { type: "date", from: "Start" },
            end: { type: "date", from: "End" },
            description: { from: "Description" },
            ownerId: { from: "OwnerID", defaultValue: 1 },
            isAllDay: { type: "boolean", from: "IsAllDay" }
        }
    },
    parse: function (responce) { /*debugger;*/ }
},

and wrote a simple controller

[HttpGet]
public ActionResult Tasks(int? id)
{
    //«data» type is List<Tasks>
    if (id.HasValue) 
        return Json(data.SingleOrDefault(x => x.TaskID == id.Value), JsonRequestBehavior.AllowGet);
    else 
        return Json(data, JsonRequestBehavior.AllowGet);
}

Which produces data like

[{"TaskID":1,"Title":"Action","Start":"\/Date(1425009600000)\/","End":"\/Date(1425013200000)\/","Description":"Action time","OwnerId":1,"IsAllDay":false},{"TaskID":2,"Title":"Dinner","Start":"\/Date(1425034800000)\/","End":"\/Date(1425038400000)\/","Description":"Dinner time","OwnerId":1,"IsAllDay":false}]

But nothing works. Checked schema and data on Telerik Kendo UI Dojo, and all good there. I think, problem in controller declaration due to some params lack. What I've missed?


Solution

  • You're defining a parse method in your schema which does nothing. You have to remove it or return data from it:

    parse: function(response) {
      return response;
    }