Создайте свойство, которое представляет заголовок события, как вы хотите.
Ваше действие контроллера
public JsonResult GetEvents(double start, double end)
{
//Bunch of work to deal with date format and retrieve data
var urlHelper = new UrlHelper(ControllerContext.RequestContext);
var result = from e in eventList
select
new
{
id = e.EventId,
title = e.StartDate.ToString("s") + " - " +
e.EndDate.ToString("s") +
" Reservation ID#" +
e.ReservationNumber,
start = e.StartDate.ToString("s"),
end = e.EndDate.ToString("s"),
url = urlHelper.Action("Details", "Event",
new {id = e.EventId}),
color = e.IsActive ? "#2E9AFE" : "#FA5858"
};
var rows = result.ToArray();
return Json(rows, JsonRequestBehavior.AllowGet);
}
Что касается повторяющихся событий, вы должны создать это самостоятельно. Я в основном создал стандартное действие добавления события CRUD, которое также запрашивало повторения до даты.
Когда вы получите свой список событий обратно, вы можете выполнить итерацию по коллекции, чтобы найти эти события с повторением. Когда вы найдете его, вы должны пройти через процесс определения «виртуальных» повторяющихся событий для добавления. Я в основном определил список дат между настоящим моментом и окончанием повторения, которое должно иметь повторяющееся событие.
Как только у вас будет этот список дат для повторения, создайте новое событие для каждой из них с идентификатором исходного события и всеми остальными подробностями. Таким образом, когда вы нажимаете на событие календаря, они представляют одно и то же событие. Возьмите этот новый список событий, прикрепите его к исходному списку событий, и все готово. Ваш календарь будет отображать повторяющиеся события и не будет мудрее.
Надеюсь, это поможет.