在FullCalendar上获取事件

问题描述 投票:1回答:1

我正在尝试使FullCalendar在我的应用程序上运行,但我无法获取我在mysql数据库上的事件。这是我的代码:

.cshtml

<div class="panel-body">
                    <script type="text/javascript">
                        $(document).ready(function () {
                            $('#calendar').fullCalendar({
                                height: 600,
                                width: 500,
                                theme: false,
                                fixedWeekCount: false,
                                header: {
                                    left: 'prev,next today',
                                    center: 'title',
                                    right: 'month,agendaWeek,agendaDay',

                                },
                                weekends: false,
                                editable: false,
                                eventSources: [

                                       'Agenda/getEvents'

                                ],
                            });
                        });
                    </script>
                    <div id="calendar"></div>
                </div>

.cs控制器

{
public class AgendaController : Controller
{
    // GET: Agenda
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult Agenda()
    {
        ViewBag.id = Session["id"];
        ViewBag.usuario = Session["usuario"];
        ViewBag.tipo_usuario = Session["tipo_usuario"];
        return View();
    }

    [HttpPost]
    public JsonResult getEvents(double start, double end)
    {
        try
        {
            DataTable dt = new DataTable();


            using (MySqlConnection con = new MySqlConnection(BD.CadConMySQL()))
            {
                using (MySqlCommand cmd = new MySqlCommand("SELECT tareas.tipo as title, tareas.fecha_inicio as start, tareas.fecha_fin as end FROM tareas", con))
                {


                    using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
                    {
                        da.Fill(dt);
                    }
                }
            }

            return Json(dt.ToList());
        }
        catch (Exception e)
        {
            RespGeneric resp = new RespGeneric("KO");
            resp.msg = e.Message;
            return Json(resp);
        }
    }

所以Agenda / getEvents给了我以下JSON,这对于FullCalendar来说是好的:JSON

但是,日历没有显示任何事件,我不明白为什么因为JSON看起来很好,如果我在.cshtml上逐个获取事件,它们的工作原理完全相同。谢谢!

javascript .net
1个回答
0
投票

我认为你不尊重标准eventSource fetch的结构,它在documentation中描述为:

$('#calendar').fullCalendar({

  eventSources: [

    // your event source
    {
      url: '/myfeed.php',
      type: 'POST',
      data: {
        custom_param1: 'something',
        custom_param2: 'somethingelse'
      },
      error: function() {
        alert('there was an error while fetching events!');
      },
      color: 'yellow',   // a non-ajax option
      textColor: 'black' // a non-ajax option
    }

    // any other sources...

  ]

});
© www.soinside.com 2019 - 2024. All rights reserved.