所以我在日历解决方案中使用Fullcalendar。
我使用以下内容显示数据库中的事件:
events: "/Job/GetJobCalendarEvents?jobId=" + jobId
提供事件的代码如下:
List<CalendarAppointment> apps = new List<CalendarAppointment>();
foreach (var id in interviewDates)
{
apps.Add(new CalendarAppointment()
{
id = id.Id,
title = "Selected Interview Date",
start = Convert.ToDateTime(id.StartTime).ToString("s"),
end = Convert.ToDateTime(id.EndTime).ToString("s"),
allDay = false,
dismiss = false,
className = "css-cal js-cal-obj js-cal-obj-" + id.Id
});
}
var appArr = apps.ToArray();
var jsonResult = Json(appArr, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;
return jsonResult;
这很好,事件在页面上的显示也很好。
我真正想解决的是如何访问日历插槽本身上的事件ID。
我的日期点击事件如下:
dateClick: function (info) {
$.post("/Job/SaveInterview", { jobId: jobId, date: info.dateStr, duration: interviewDuration })
.done(function (data) {
calendar.refetchEvents();
});
}
我需要的是能够单击该事件,并使用ID将请求发送回我的控制器,以便我可以删除。
有任何想法吗?
答案 0 :(得分:1)
最终解决了,请参阅下面的内容...
eventClick: function (info) {
$.post("/Job/RemoveInterviewSlot", { slotId: Number(info.event.id) })
.done(function (data) {
calendar.refetchEvents();
});
}