尝试在fullCalendar中显示资源时出错

时间:2013-11-21 18:12:50

标签: jquery ajax json asp.net-mvc-4 fullcalendar

我在使用资源日视图(源:https://github.com/ikelin/fullcalendar)在FullCalendar 1.5.4中返回数组时遇到问题。
这是我的控制器:

[HttpPost]
public JsonResult GetResources()
    {        
    var data =db.Patients.ToList();            
    return Json(data.Select(i => new
        {
            id = i.PatientID,
            name = i.FirstName + " " + i.LastName
        }),JsonRequestBehavior.AllowGet);
    }


在此我的观点:

var calendar = $('#calendar').fullCalendar({
        defaultView: 'resourceDay',
        resources: function (callback) {
            $.ajax({
                type: "post",
                url: '@Url.Action("GetResources", "Patient")',
                success: function (d) {                        
                    var listOfResources = [];
                        for (var i = 0, len = d.length; i < len; i++) {
                            var item = d[i];
                            listOfResources.push(item);
                            console.log(listOfResources[i].name);
                        }
                        callback(listOfResources);
                },

                    error: function (e) {
                        debugger;
                    }
            });
       }
 })


这里是我的json结果

0       Object { id=1, name="Marie Curie"}  
1       Object { id=2, name="Gustave Eiffel"}


和我的回复:

[{"id":1,"name":"Marie Curie"},{"id":2,"name":"Gustave Eiffel"}]

返回console.log(listOfResources [i] .name):

Marie Curie
Gustave Eiffel

这是我的错误:

TypeError: resources[i] is undefined
headCell.html(resources[i].name);

1 个答案:

答案 0 :(得分:0)

从您的代码中,您尚未定义ListOfResources,因此callback(ListOfResources);无效。

我相信你想传递listOfResources into the回调。注意不同的外壳:

callback(listOfResources)