1

私は現在asp.net mvc 4で作業しており、フルカレンダーをプロジェクトに追加しようとしています。フルカレンダーはこちらにあります: http://arshaw.com/fullcalendar/

アクションリンクをクリックしても、カレンダーが読み込まれません。うまくいかない理由が見つからないようです。

コードは次のとおりです。

CSHTML

@section JavaScript
{
    <link href="@Url.Content("/Content/fullcalendar.css") " rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="@Url.Content("/Scripts/jquery-ui-1.8.11.min.js")"></script>
    <script type="text/javascript" src="@Url.Content("/Scripts/fullcalendar.js")"></script>
    @*    <script type="text/javascript" src="@Url.Content("/Scripts/fullcalendar.min.js")"></script>*@
}
@{
    ViewBag.Title = "Tijdregistratie";
}
<script type='text/javascript'>
    $(document).ready(function () {

        var date = new Date();
        var d = date.getDate();
        var m = date.getMonth();
        var y = date.getFullYear();

        $('#calendar').fullCalendar({
            header: {
                left: 'prev',
                center: 'title',
                right: 'next'
            },
            editable: true,
            events: "/TijdRegistratie/GetGeplandeTaken/"
        });
    });
</script>
<div id='calendar'>
</div>

コントローラ

private TijdRegistratieService.ITijdRegistratieService _tijdRegistratieClient;

        public TijdRegistratieController()
        {
            _tijdRegistratieClient = new TijdRegistratieService.TijdRegistratieServiceClient();
        }

        public ActionResult TijdRegistratieOverzicht()
        {


            return View("TijdRegistratieOverzicht");
        }

        public JsonResult GetGeplandeTaken(double start, double end)
        {
            String beginDatum = ConvertFromUnixTimestamp(start).ToString();
            String eindDatum = ConvertFromUnixTimestamp(end).ToString();

            int psnID = (int)HttpContext.Session["userPSNID"];

            var geplandeTaken = _tijdRegistratieClient.GetGeregistreerdeTaken(1, beginDatum, eindDatum);

            var eventList = from e in geplandeTaken
                            select new
                            {
                                id = e.taakID,
                                title = e.BeginUur.Substring(0, e.BeginUur.Length - 3) + " - " + e.EindUur.Substring(0, e.EindUur.Length - 3),
                                start = string.Format("{0:u}", e.BeginDatum),
                                end = string.Format("{0:u}", e.EindDatum)
                                //allDay = false
                            };

            var rows = eventList.ToArray();

            return Json(rows, JsonRequestBehavior.AllowGet);
        }

        private static DateTime ConvertFromUnixTimestamp(double timestamp)
        {
            var origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);

            return origin.AddSeconds(timestamp);
        }

Layout.cshtml (すべてのページに自動的に読み込まれます)

<head>
    <meta charset="utf-8" />
    <title>@ViewBag.Title</title>
    <meta name="viewport" content="width=device-width" />
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    <link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
    <link rel="stylesheet" href="~/Content/autocomplete.css" type="text/css" media="all" />
    <script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>
    <link rel="stylesheet" type="text/css" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
    <link rel="stylesheet" type="text/css" href="http://dev.jtsage.com/cdn/datebox/latest/jquery.mobile.datebox.min.css" />
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jquery.mobile.datebox.min.js"></script>
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/i8n/jquery.mobile.datebox.i8n.en.js"></script>
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jquery.mobile.datebox.min.js"></script>
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/i8n/jquery.mobile.datebox.i8n.en.js"></script>

    @RenderSection("JavaScript", required: false)
    <script>

ということで、どうすれば直るか、現在悩んでいます。これは私が JQuery を使用する 2 番目のプロジェクトです。

編集: Firefox で実行すると、firebug で次のエラーが発生します: fullCalendar is not a function.

4

4 に答える 4

0

一見すると、メソッドに 2 つのパラメーターを渡す必要はありませんか?

GetGeplandeTaken(ダブルスタート、ダブルエンド)

あなたのメソッドはビューから呼び出されますか? method にブレークポイントを設定した場合、そのパラメーターの値はありますか?

于 2012-05-23T07:52:16.113 に答える
0

削除する必要があります:

@section JavaScript
{
    <link href="@Url.Content("/Content/fullcalendar.css") " rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="@Url.Content("/Scripts/jquery-ui-1.8.11.min.js")"></script>
    <script type="text/javascript" src="@Url.Content("/Scripts/fullcalendar.js")"></script>
    @*    <script type="text/javascript" src="@Url.Content("/Scripts/fullcalendar.min.js")"></script>*@
}

cshtml ページから読み込み、メインの読み込みページに追加します。これで、すべてのページに読み込まれ、問題なく動作します。

于 2012-05-23T13:43:26.157 に答える
0

jQuery ライブラリを含めるのを忘れていました。リンクしたデモ ページを確認してください。次のものが含まれています。

<script type='text/javascript' src='/js/fullcalendar-1.5.3/jquery/jquery-1.7.1.min.js'></script>

あなたの例はそうではありませんが。

于 2012-05-23T07:49:29.737 に答える