В моем событии fullcalendar я добавил (Controller / action) "/ Calendar / GetEvents /" для этого события.Это не относится к методу GetEvents в CalendarController
Я включил требования полного календаря в _Layout
<link href="~/Content/Template/assets/libs/fullcalendar/fullcalendar.min.css" rel="stylesheet" type="text/css" />
<script src="~/Content/Template/assets/libs/moment/moment.min.js"></script>
<script src="~/Content/Template/assets/libs/jquery-ui/jquery-ui.min.js"></script>
<script src="~/Content/Template/assets/libs/fullcalendar/fullcalendar.min.js"></script>
Это в моем методе CalendarController
public JsonResult GetEvents(double start, double end)
{
var fromDate = ConvertFromUnixTimestamp(start);
var toDate = ConvertFromUnixTimestamp(end);
//Get the events
var eventList = this.GetEvents();
var rows = eventList.ToArray();
return Json(rows, JsonRequestBehavior.AllowGet);
}
В индексепредставление имеет идентификатор для календаря
<div id="calendar"></div>
и сценария
@section scripts{
<script type="text/javascript">
$(document).ready(function () {
$('#calendar').fullCalendar({
theme: true,
defaultView: 'agendaDay',
editable: false,
events: "/Calendar/GetEvents/"
});
});
</script>
}
, как указано выше, сценарий не работает, я попытался выполнить следующие действия в качестве сценария также
@section scripts{
<script type="text/javascript">
$(document).ready(function () {
$('#calendar').fullCalendar({
header:
{
left: 'prev,next today',
center: 'title'
},
buttonText: {
today: 'today'
},
//defaultView: 'agendaDay',
editable: false,
//events: "/Calendar/GetEvents/"
events: function (start, end, timezone, callback) {
$.ajax({
url: '/Calendar/GetCalendarData/',
type: "GET",
dataType: "JSON",
contentType: "application/json; charset=utf-8",
//success: function (result) {
// alert('yeap');
//},
//error: function (XMLHttpRequest, textStatus, errorThrown) {
// alert('oops, something bad happened');
//}
success: function (result) {
var events = [];
$.each(result, function (i, data) {
events.push(
{
title: data.Title,
//description: data.Desc,
start: moment(data.Start).format('YYYY-MM-DD'),
end: moment(data.End).format('YYYY-MM-DD'),
backgroundColor: "#9501fc",
borderColor: "#fc0101"
});
});
alert('hoo');
callback(events);
},
error: function (error) {
alert('failed');
}
});
}
//eventRender: function (event, element) {
// element.qtip(
// element.qtip(
// {
// content: event.description
// });
//},
//editable: false
});
});
</script>
}
Метод контроллера для этого сценария url
public ActionResult GetCalendarData()
{
// Initialization.
JsonResult result = new JsonResult();
try
{
// Loading.
List<CalendarDay> data = this.LoadData();
// Processing.
result = this.Json(data, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
// Info
Console.Write(ex);
}
// Return info.
return result;
}
Когда я бегу, он показывает календарь, но не выполняет метод действия в контроллере и не показывает события в календаре.При проверке браузера видно следующее
MOCK GET: /Calendar/GetEvents/
Object { url: "/Calendar/GetEvents/", type: "GET", isLocal: false, global: true, processData: true, async: true, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: {…}, contents: {…}, responseFields: {…}, … }