我正在使用asp.net mvc 3实现FullCalendar jquery。工作正常,但事件没有返回到日历中。Firebug控制台告诉我它们肯定会被退回,它们只是没有出现在日历上。我认为这是与日期格式有关,我已经阅读了,但不能得到任何工作。这是我的控制器;
public ActionResult CalendarData()
{
DateTime myDate = DateTime.Now;
var eventlist = from e in db.WhatsOns
where e.start >= myDate && e.CalenderDisplay
select e;
return Json(eventlist.ToArray(), JsonRequestBehavior.AllowGet);
}
和javascript in my view;
<script type="text/javascript">
$(document).ready(function() {
$('#calendar').fullCalendar({
theme: true,
header: {
left: 'prev,next today',
center: 'title',
right:''
},
defaultView: 'month',
editable: false,
events: "/WhatsOn/CalendarData"
});
});
</script>
控制台输出如下;
[{"ID":1,"start":"/Date(1312844400000)/","end":"/Date(1313103600000) /","Name":"Test","Desc":"This is a test event, it will be great!","link":"http:www.link./com","CalenderDisplay":true,"day":null,"whtscount":0,"isActive":false},{"ID":2,"start":"/Date(1313708400000)/","end":"/Date(1314054000000)/","Name":"This another test event5, itu0027s on later than the first one.","Desc":"We aere all gpoing to get together and drink,","link":"http:www.link./com","CalenderDisplay":true,"day":null,"whtscount":0,"isActive":false}]
我最近遇到了同样的问题,不是.net原生的,但可能是相同的问题-
完整日历要求数组的每个元素至少有明确定义的标题和开始索引。
换句话说,我没有得到显示的事件,直到我格式化json我的动作返回到这样的东西(这是json从我的应用程序的工作):
events: [
0: {sessionId:259, title:Completed regular, start:2011-08-08}
1: {sessionId:260, title:Completed regular, start:2011-08-10}
2: {sessionId:261, title:Not done, start:2011-08-12}
3: {sessionId:262, title:Not done, start:2011-08-13}
4: {sessionId:263, title:Not done, start:2011-08-15}
5: {sessionId:264, title:Not done, start:2011-08-17}
]
希望有帮助,
欢呼
您将发现JSON规范不支持序列化datetime类型对象,因此考虑到您最接近的可交换表示,我建议将日期作为字符串传输(我不得不在最近启用ajax的应用程序中使用这种解决方案)。使用。net的Date. parse()方法处理由JavaScript Date. toutcstring()生成的字符串,并使用本机。net Date. tostring()方法生成的字符串调用JavaScript的Date构造函数,我就能够在。net应用程序和JavaScript之间轻松交换日期时间数据。我建议这样做。
请记住,如果您支持日期时间本地化,而您的服务器时区与应用程序用户的时区不同,则应用程序可能需要数据存储中的UTC时间表示。我建议在调用。net的ToString()进行时间本地化时使用RFC1123模式说明符。JavaScript的Date构造函数可以很容易地解析这种格式。