Мои события теперь будут отображаться?- Jquery Полный календарь - PullRequest
0 голосов
/ 20 апреля 2011

Я использую asp.net mvc 3 и jquery 1.5.2 с полным календарем jquery 1.5.1

У меня есть

$('#calendar').fullCalendar ({
    theme: true,
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    editable: false,
    eventSources:[{
        url: '/Home/GetCurrentMonth',
        type: 'Get',
        color: 'yellow',   // a non-ajax option
        textColor: 'black' // a non-ajax option
    }]
});

Он срабатывает и попадает в мой метод JsonResult и возвращает что-то вроде этого

[{"id":9,"title":"test4","start":"4/1/2011 5:00:00 AM","end":"4/1/2011 6:30:00 AM","allDay":false},
{"id":9,"title":"test4","start":"5/1/2011 12:00:00 PM","end":"5/1/2011 1:30:00 PM","allDay":false}]

Пока ничего не видно. Что я делаю не так?

List<CalendarAppointment> appointments = 
    calendarService.GetAppointment("test@hotmail.com", start, end);

List<CalendarEventViewModel> vm = Mapper.Map<List<CalendarAppointment>,
    List<CalendarEventViewModel>>(appointments);

return Json(vm, JsonRequestBehavior.AllowGet);

Это то, что есть в GetCurrentMonth.

public class CalendarEventViewModel
{
    public int id { get; set; }
    public string title { get; set; }
    public string start { get; set; }
    public string end { get; set; }
    public bool allDay { get; set; }
}

Это моя ViewModel.

Ответы [ 2 ]

1 голос
/ 20 апреля 2011

У меня сработало следующее:

Контроллер:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GetCurrentMonth()
    {
        var vm = new[]
        {
            new CalendarEventViewModel
            {
                id = 1,
                title = "title 1",
                start = "start 1",
                end = "end 1",
                allDay = false
            },
            new CalendarEventViewModel
            {
                id = 2,
                title = "title 2",
                start = "start 2",
                end = "end 2",
                allDay = true
            },
        };
        return Json(vm, JsonRequestBehavior.AllowGet);
    }
}

Вид:

<script src="@Url.Content("~/fullcalendar-1.5.1/fullcalendar/fullcalendar.min.js")" type="text/javascript"></script>
<script type="text/javascript">
    $(function () {
        $('#calendar').fullCalendar({
            theme: true,
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },
            editable: false,
            eventSources: [{
                url: '@Url.Action("GetCurrentMonth", "Home")',
                type: 'GET',
                color: 'yellow',   // a non-ajax option
                textColor: 'black' // a non-ajax option
            }]
        });
    });
</script>

<div id="calendar"></div>

Не уверен, что может быть не так с вашим кодом. Я вижу, что вы не включили вызов fullCalendar в обработчик $(document).ready, поэтому DOM может еще не быть загружен во время попытки присоединить календарь к элементу #calendar.

0 голосов
/ 13 мая 2011

Проблема была в том, что jquery проверил 1.7. Не уверен, почему это повлияло только на результат json, но это была проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...