JQuery FullCalendar вызывает метод заполнить данные сбой - PullRequest
0 голосов
/ 14 января 2012

В настоящее время я работаю над небольшим веб-сайтом в ASP.NET MVC3 (Razor), где мне нужна страница, на которой отображается календарь с некоторыми встречами в нем.

Я выбрал FullCalendar и столкнулся с некоторыми проблемами.Я получил календарь, отображающий нормально, введя его в <div>.

. Но как только я пытаюсь добавить свойство "events", чтобы мой метод заполнения данных вызывался, календарь даже не показывался иестественно, я никогда не достигну метода в контроллере.Даже если я попытаюсь добавить раздел заголовка, где я манипулирую заголовком и стрелками навигации, он не будет отображаться.

Я включил все необходимые сценарии в свою главную страницу, вот исходное представление представления индекса, где вы можете видетьвсе сценарии включены.

Я не могу понять, что я делаю неправильно.Я должен быть в состоянии прекрасно отобразить HTML-код и вызвать метод, чтобы получить некоторые встречи в своем календаре.

Кроме того, почему я не могу выполнить простую операцию, такую ​​как изменение заголовка и расположение заголовка там, где я хочу.Мой синтаксис должен быть нарушен?

   <title>Index</title>
<link href="/Content/Site.css" rel="stylesheet" type="text/css" />
<link href="/css/jquery.lightbox-0.5.css" rel="Stylesheet" type="text/css" media="screen" />
<link href="/Content/fullcalendar.css" rel="stylesheet" type="text/css" />

    <script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>

    <script src="/Scripts/jquery-ui-1.8.11.min.js" type="text/javascript"></script>

    <script src="/Scripts/jquery.js" type="text/javascript"></script>

    <script src="/Scripts/MicrosoftAjax.js" type="text/javascript"></script>

    <script src="/Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>

    <script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript">  </script>

    <script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>

    <script src="/Scripts/fullcalendar.min.js" type="text/javascript"></script>

    <script src="/Scripts/jquery.lightbox-0.5.min.js" type="text/javascript"></script>

    <script src="/Scripts/Venatores.js" type="text/javascript"></script>

Модель данных:

 public class EventModel
{
    public int ID { get; set; }
    public string Title { get; set; }
    public DateTime StartDateTime { get; set; }
    public DateTime EndDateTime { get; set; }
    public bool IsAllDay { get; set; }
}

Контроллер с именем CalendarController:

        public ActionResult Index()
    {

        return View();
    }



    public JsonResult PopulateData(double start, double end)
    {

      //  var startDateTime = FromUnixTimestamp(start);
       // var endDateTime = FromUnixTimestamp(end);

        EventModel appointment = new EventModel();
        appointment.StartDateTime = DateTime.Now;
        appointment.EndDateTime = appointment.StartDateTime.AddHours(2.0);
        appointment.IsAllDay = false;
        appointment.Title = "Riffel";
        appointment.ID = 1;

        List<EventModel> appointments = new List<EventModel>();
        appointments.Add(appointment);

        var clientList = new List<object>();

        foreach (EventModel e in appointments)
        {
            clientList.Add(
                new
                    {
                        id = e.ID,
                        title = e.Title,
                        //description = e.Description,
                        start = ToUnixTimespan(e.StartDateTime),
                        end = ToUnixTimespan(e.EndDateTime),
                        allDay = e.IsAllDay,
                        url = "www.google.com"
                });
        }
        return Json(clientList.ToArray(), JsonRequestBehavior.AllowGet);

    }

    private static DateTime FromUnixTimestamp(double timestamp)
    {
        var origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
        return origin.AddSeconds(timestamp);
    }

    private long ToUnixTimespan(DateTime date)
    {
        TimeSpan tspan = date.ToUniversalTime().Subtract(
        new DateTime(1970, 1, 1, 0, 0, 0));

        return (long)Math.Truncate(tspan.TotalSeconds);
    }

Мой индексный просмотр:

<script type="text/javascript" language="javascript">

$(document).ready(function () {

    $('#calendar').fullCalendar({
            //events: "/Calendar/PopulateData"
        });
    });

</script>

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

1 Ответ

0 голосов
/ 17 января 2012

Я не работаю в ASP - но API FullCalendar, кажется, требует установки "url", если вы хотите использовать обратный вызов JSON на стороне сервера. Параметр «events» предназначен для заполнения массива или функции на стороне клиента. Кроме этого - на поверхности - большая часть всего остального имеет смысл.

...