Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Событие не отображается с помощью jquery для просмотра в asp.net mvc

Автор вопроса: Red SwanОтветов: 1

Я реализую полный календарь в jquery в своем приложении asp.net mvc, ссылаясь на здесь

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

Отредактировано

Контроллер:

 public ActionResult CalendarData()
        {
            IList<CalendarDTO> tasksList = new List<CalendarDTO>();

            tasksList.Add(new CalendarDTO
            {
                id = 1,
                title = "Google search",
                start = ToUnixTimespan(DateTime.Now),
                end = ToUnixTimespan(DateTime.Now.AddHours(4)),
                url = "www.google.com"
            });
            tasksList.Add(new CalendarDTO
            {
                id = 1,
                title = "Bing search",
                start = ToUnixTimespan(DateTime.Now.AddDays(1)),
                end = ToUnixTimespan(DateTime.Now.AddDays(1).AddHours(4)),
                url = "www.bing.com"
            });

            return Json(tasksList);
        }

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

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

Добавлен класс

public class CalendarDTO
    {
        public int id { get; set; }
        public string title { get; set; }
        public long start { get; set; }
        public long end { get; set; }
        public string url { get; set; }
    }

Мастер сайта

<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
<link href="../../Content/fullcalendar.css" rel="stylesheet" type="text/css" />
<script src="../../Scripts/fullcalendar.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-1.3.2.js" type="text/javascript"></script>

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

   $(document).ready(function() {
       $('#calendar').fullCalendar({
           events: "/Home/CalendarData"
       });
   });

И добавлен div с идентификатором "calender".
------------------------------------------------- -------------------------------------------------- -----
Отредактированный вопрос 2

Как вы можете видеть выше, мой метод возвращает вывод Json. но я получаю сообщение об ошибке:
Этот запрос был заблокирован, поскольку конфиденциальная информация может быть раскрыта сторонним веб-сайтам, когда она используется в запросе GET. Чтобы разрешить запросы GET, задайте для JsonRequestBehavior значение AllowGet.
Поэтому я просто добавляю параметр JsonRequestBehavior.AllowGet в Json() .
но он запрашивает загрузку выходного файла json. вместо этого он должен быть перенаправлен на просмотр как обычно, верно? почему это должно происходить?

  • Какую ошибку вы получали? Это может помочь, если вы можете включить часть своего кода. mfdoran 20.10.2010
  • не получает никакой ошибки, но показывает календарь, но не события по датам Red Swan 20.10.2010
  • приветооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо Red Swan 20.10.2010

jqueryfullcalendar

Ответы

Ответ 1 · Darin Dimitrov

Возможно, глупый вопрос, но вы включили jquery-1.3.2.js и fullcalendar.js на свой сайт? Помните, что в шаблоне проекта ASP.NET MVC 2.0 по умолчанию только jquery-1.4.1.js включается в папку Scripts. Также я бы порекомендовал вам загрузить последние версии jquery и файлы плагин fullCalendar.

Также вот еще одна ошибка при возврате JSON в действии CalendarData:

return Json(tasksList, JsonRequestBehavior.AllowGet);

В отличие от ASP.NET MVC 1.0, в ASP.NET MVC 2.0 JsonRequestBehavior.AllowGet необходим, если вы хотите, чтобы это действие было доступно через GET, что, я думаю, делает плагин календаря.

Конечно, вы бы увидели эту ошибку, если бы использовали FireBug для анализа данных запроса/ответа AJAX.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы