jQuery FullCalendar にイベントを入力するのにかなりの問題があります。
ブラウザ:IE8
技術: MVC 3 Razor
使用しているスクリプト: jquery-1.5.1、fullcalendar.js
コントローラーとサポート方法:(私の問題は、そもそもここに到達しないことですが)
public JsonResult GetCalendarData()
{
List<CourseSection> courseSecs = //genarates list of course sections from db context
var listOfEvents = new List<object>();
foreach (CourseSection courseSec in courseSecs)
{
Course course = db.Course.Find(courseSec.CourseID);
listOfEvents.Add(
new
{
id = courseSec.ID,
title = course.Name + "Section " + courseSec.Name,
start = ToUnixTimespan(courseSec.sectionBeginDateAndDailyStartTime),
end = ToUnixTimespan(courseSec.sectionEndDateAndDailyEndTime),
allDay = false //none of the course sections run all day
});
}
return Json(listOfEvents.ToArray(), JsonRequestBehavior.AllowGet);
}
private string ToUnixTimespan(DateTime date) //supporting method
{
TimeSpan tspan = date.ToUniversalTime().Subtract(
new DateTime(1970, 1, 1, 0, 0, 0));
return Math.Truncate(tspan.TotalSeconds).ToString();
}
意見:
@model Web.Models.Registration
@{
ViewBag.Title = "ViewSchedule";
Layout = "~/Views/Shared/_SiteLayout.cshtml";
}
<script>
$(document).ready(function () {
// page is now ready, initialize the calendar...
$('#calendar').fullCalendar({
defaultView: "agendaWeek",
year: 2013,
month: 0,
date: 25,
minTime: 6,
maxTime: 18,
aspectRatio: 1.5,
allDaySlot: false,
events: "/Course/GetCalandarData"
});
});
</script>
<div class="wrapper col3">
<div id="container">
<h1>View Schedule</h1>
<div id = 'calendar'>
</div>
<br />
@Html.ActionLink("Home", "Home", "Static")
<br />
</div>
</div>
問題: カレンダー自体とすべての構成が正しく読み込まれます。ただし、構成の最後の行 (イベント: "/Course/GetCalendarData") は発生しません。限目。コントローラー メソッドに配置したデバッグ ブロックがトリップすることはなく、JSON も返されません。
アクセス URL に必須の「@Url.Content...」プレフィックスを追加してみました。メソッドを別のコントローラーに格納しようとしました。別のバージョンの jQuery を使用してみました。競合を引き起こしている可能性のある余分なスクリプトをすべて削除しました。すべては灘のために。
私はこれで髪を引き裂いています。何か案は?