В настоящее время я работаю над небольшим веб-сайтом в 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>