C# json未通过控制器

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

我正在使用jQuery fullcalendar插件和mvc3

jQuery:

$(文档).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是否意味着在事件加载时会重新加载整个日历?那么它不总是会给出默认日期吗?