C# json未通过控制器
我正在使用jQuery fullcalendar插件和mvc3 jQuery:C# json未通过控制器,c#,jquery,asp.net-mvc-3,fullcalendar,C#,Jquery,Asp.net Mvc 3,Fullcalendar,我正在使用jQuery fullcalendar插件和mvc3 jQuery: $(文档).ready(函数(){ var calendar=$(“#calendar”).fullCalendar({ 标题:{ 左:“上一个,下一个,今天”, 中心:'标题', 右图:“月,agendaWeek,agendaDay” }, 事件:“CalendarView/GetEvents/” }); }); 控制器(不进入此功能): 公共JsonResult GetEvents(双开始,双结束) { var
$(文档).ready(函数(){
var calendar=$(“#calendar”).fullCalendar({
标题:{
左:“上一个,下一个,今天”,
中心:'标题',
右图:“月,agendaWeek,agendaDay”
},
事件:“CalendarView/GetEvents/”
});
});
控制器(不进入此功能):
公共JsonResult GetEvents(双开始,双结束)
{
var DateStart=convertfromunixtimestap(开始);
var DateEnd=convertfromunixtimestap(end);
var JsonRfc=Repo.getCalendar(DateStart,DateEnd);
var ret=JsonRfc.ToArray();
返回Json(ret,JsonRequestBehavior.AllowGet);
}
控制器中的代码永远不会执行。有人知道为什么吗
谢谢。您的JsonResult需要两个参数作为Start和End,而Ajax方法似乎没有传递这些参数
您是否考虑过安装或检查Firebug中返回的代码?这可能会让您更深入地了解实际web流量的行为。您的JsonResult需要两个参数作为开始和结束,而Ajax方法似乎没有传递这些参数
您是否考虑过安装或检查Firebug中返回的代码?这可能会让您更深入地了解实际web流量的行为。确保控制器/操作的路径正确。根据应用程序的安装方式,它可能正确,也可能不正确。只要javascript代码在其中一个视图中,您就可以尝试使用它
events: '@Url.Action("GetEvents","CalendarView")'
正如@Phil.Wheeler所建议的,你应该仔细看看Firebug/IE开发者工具/Chrome开发者工具中会出现什么。(如果您想在浏览器之外找到其他内容,请尝试)
您可能希望尝试的另一种方法是首先使用
$.getJSON('CalendarView/GetEvents/', function(data) {
var calendar = $('#calendar').fullCalendar({
header: {
left: 'prev, next, today',
center: 'title',
right: 'month, agendaWeek, agendaDay'
},
events: data
});
}
确保控制器/操作的路径正确。根据应用程序的安装方式,它可能正确,也可能不正确。只要javascript代码在其中一个视图中,您就可以尝试使用它
events: '@Url.Action("GetEvents","CalendarView")'
正如@Phil.Wheeler所建议的,你应该仔细看看Firebug/IE开发者工具/Chrome开发者工具中会出现什么。(如果您想在浏览器之外找到其他内容,请尝试)
您可能希望尝试的另一种方法是首先使用
$.getJSON('CalendarView/GetEvents/', function(data) {
var calendar = $('#calendar').fullCalendar({
header: {
left: 'prev, next, today',
center: 'title',
right: 'month, agendaWeek, agendaDay'
},
events: data
});
}
正如Phil.Wheeler所建议的,使用浏览器调试器来找出发生了什么,尽管我可以这样说: 如果您遇到500服务器错误,那么执行时可能没有满足功能要求(假设您实际找到了控制器的正确URL) 此外,您的方法应该用
[HttpPost]
[HttpPost]
public JsonResult GetEvents(double start, double end)
正如Phil.Wheeler所建议的,使用浏览器调试器来找出发生了什么,尽管我可以这样说: 如果您遇到500服务器错误,那么执行时可能没有满足功能要求(假设您实际找到了控制器的正确URL) 此外,您的方法应该用
[HttpPost]
[HttpPost]
public JsonResult GetEvents(double start, double end)
$。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%工作。$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();
使用Fiddler,我发现我的问题是我的方法没有正确的变量名“start”和“end”。这就是服务器错误500的原因。使用Fiddler,我发现我的问题是我的方法没有正确的变量名“start”和“end”。这就是我服务器错误500的原因。我和你有同样的问题。使用Firebug,我意识到调用实际上是以下形式的:GetEvents?start=2014-06-29&end=2014-08-10&_=1404512824620
这意味着开始和结束不是双重的。更改GetEvents以使开始和结束字符串最终生效。然后,您可以将字符串转换为适当的格式。我遇到了与您相同的问题。使用Firebug,我意识到调用实际上是以下形式的:GetEvents?start=2014-06-29&end=2014-08-10&_=1404512824620
这意味着开始和结束不是双重的。更改GetEvents以使开始和结束字符串最终生效。然后,您可以将字符串转换为适当的格式。根据文档,在调用事件提要时,两个参数似乎会自动添加:根据文档,在调用事件提要时,两个参数似乎会自动添加:提供的四个答案中是否有一个能够帮助您解决问题?是吗提供的四个答案中的任何一个都可以帮助您解决问题?-1如果您使用HttpPost进行装饰,则需要在fullCalendar设置中的events:部分添加类型:“POST”。原来的问题不是通过POST提出的。你是对的,我根本不知道我在说什么。您的返回值甚至指定了
AllowGet
-1给我-1如果您使用HttpPost进行装饰,则需要在fullCalendar设置中的events:部分添加类型:“POST”。原来的问题不是通过POST提出的。你是对的,我根本不知道我在说什么。您的返回值甚至指定了AllowGet
-1给我!问:在fullCalendar定义之外执行.getJSON是否意味着在事件加载时会重新加载整个日历?那么它不总是会出现默认日期吗?Q:在fullCalendar定义之外执行.getJSON是否意味着在事件加载时会重新加载整个日历?那么它不总是会给出默认日期吗?