我正在使用jQuery fullcalendar插件和mvc3。
的jQuery:
$(document).ready(function () {
var calendar = $('#calendar').fullCalendar({
header: {
left: 'prev, next, today',
center: 'title',
right: 'month, agendaWeek, agendaDay'
},
events: 'CalendarView/GetEvents/'
});
});
控制器(它没有进入此功能):
public JsonResult GetEvents(double start, double end)
{
var DateStart = ConvertFromUnixTimestamp(start);
var DateEnd = ConvertFromUnixTimestamp(end);
var JsonRfc = Repo.getCalendar(DateStart, DateEnd);
var ret = JsonRfc.ToArray();
return Json(ret, JsonRequestBehavior.AllowGet);
}
控制器内的代码永远不会被执行。有没有人知道为什么?
感谢。
答案 0 :(得分:1)
你的JsonResult期望开始和结束的两个参数似乎没有被你的Ajax方法传递。
您是否考虑过安装Glimpse或检查Firebug中的代码?这可能会让您更深入地了解实际网络流量的行为。
答案 1 :(得分:1)
确保控制器/操作的路径正确无误。根据您的应用安装方式,它可能是也可能不对。只要您的javascript代码位于您的某个视图中,您就可以尝试使用
events: '@Url.Action("GetEvents","CalendarView")'
正如@ Phil.Wheeler建议的那样,你应该仔细看看Firebug / IE Developer Tools / Chrome Developer工具中会出现什么。 (或者,如果您想要浏览器之外的其他内容,请尝试http://www.fiddler2.com/fiddler2/)
您可能想要尝试的另一种方法是首先使用
检索JSON对象$.getJSON('CalendarView/GetEvents/', function(data) {
var calendar = $('#calendar').fullCalendar({
header: {
left: 'prev, next, today',
center: 'title',
right: 'month, agendaWeek, agendaDay'
},
events: data
});
}
答案 2 :(得分:0)
正如Phil.Wheeler建议的那样,使用浏览器调试器来查明发生了什么,但我可以这样说:
如果您收到500服务器错误,则可能无法满足功能要求(假设您实际上正在为控制器点击正确的URL)。
除此之外,您的方法应使用 [HttpPost]
[HttpPost]
public JsonResult GetEvents(double start, double end)
击> <击> 撞击>
答案 3 :(得分:0)
$ .ajax总是对我有用:
$.ajax({
type:"GET",
url: "/CalendarView/Events",
data: {start:"", end:""},
datatype: "json"
success: function (result) {
var calendar = $("#Calendar").fullCalendar({
//define calendar for result.objectreturned
});
},
error: function () {
alert("error");
},
});
您的控制器也可以更改为:
var ret = JsonRfc.ToList();
这应该100%有效。
答案 4 :(得分:0)
使用Fiddler,我发现我的问题是我的方法没有正确的变量名'start'和'end'。这就是我的服务器错误500的原因。
答案 5 :(得分:0)
我和你有同样的问题。使用Firebug我意识到呼叫实际上是以下形式:GetEvents?start = 2014-06-29&amp; end = 2014-08-10&amp; _ = 1404512824620 这意味着开始和结束都不会加倍。更改GetEvents,以便开始和结束是最终工作的字符串。然后,您可以将字符串转换为适当的格式。