2011-12-13 5 views
0

jQuery fullcalendar 플러그인 및 mvc3을 사용하고 있습니다.컨트롤러를 통과하지 않는 json

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

컨트롤러/동작에 대한 경로가 올바른지 확인하십시오. 앱 설치 방식에 따라 올바르지 않을 수도 있습니다. 언제 까지나 당신의 자바 스크립트 코드가 귀하의보기 중 하나 안에 당신은/Phil.Wheeler 제안 @과 같이의 definetly, 방화범/IE 개발자 도구에 나타납니다 내용을 더 자세히 살펴해야

events: '@Url.Action("GetEvents","CalendarView")' 

으로 시도 할 수 있습니다 Chrome 개발자 도구 찾는 브라우저 디버거를 사용,

Phil.Wheeler 제안대로

$.getJSON('CalendarView/GetEvents/', function(data) { 

    var calendar = $('#calendar').fullCalendar({ 
     header: { 
      left: 'prev, next, today', 
      center: 'title', 
      right: 'month, agendaWeek, agendaDay' 
     }, 
     events: data 
    }); 
} 
+0

Q : fullCalendar 정의 외부에서 .getJSON을 수행하지 않습니다. 이벤트 로딩시 전체 캘린더가 다시로드된다는 의미입니까? 그러면 항상 기본 날짜가 나오지 않습니까? – erict

1

JsonResult는 Ajax 메소드에서 전달되지 않는 것으로 보이는 Start 및 End에 대한 두 개의 매개 변수를 필요로합니다.

엿볼을 설치하거나 방화범이 끌리는 코드를 다시 확인해 보셨습니까? 이렇게하면 실제 웹 트래픽의 동작에 대한 통찰력을 얻을 수 있습니다.

+0

docs에 따르면 두 피드가 이벤트 피드를 호출 할 때 자동으로 추가 된 것처럼 보입니다. http://arshaw.com/fullcalendar/docs/event_data/events_json_feed/ – torm

0

먼저 JSON 객체를 검색하는 시도 할 수있는 다른 방법 (브라우저 이외의 무언가를 원하는 경우 또는 http://www.fiddler2.com/fiddler2/ 시도) 무슨 일이 벌어 지든 내가 말할 수는 있겠지만 :

서버 오류가 500 번 발생하면 함수 요구 사항이 충족되지 않아서 (컨트롤러에 올바른 URL이 실제로 입력되었다고 가정 할 때)). 그것 또한

이, 당신의 방법은 항상 [HttpPost]

[HttpPost] 
public JsonResult GetEvents(double start, double end) 

+0

-1 HttpPost로 꾸미는 경우 fullCalendar 설정의 이벤트 : 섹션에 'POST'유형을 추가해야합니다. 원래 질문은 POST를 통해 요청하지 않습니다 – erict

+0

당신은 내가 무슨 말을하는지도 모릅니다. 반환 값은'AllowGet'을 지정합니다. -1 나를 위해! – Terry

0

$ 아약스로 장식한다 나를 위해 작동합니다

$.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 % 작동해야합니다.

0

피들러를 사용하여 내 방법은 올바른 방법으로 '시작'과 '끝'변수 이름을 갖고 있지 않다는 것을 알았습니다. 그것이 내 서버 오류 500의 원인이었습니다.

0

나는 당신과 같은 문제가있었습니다. 파이어 버그를 사용하여 나는 그 호출이 실제로 다음과 같은 형태임을 깨달았다 : GetEvents?시작 = 2014-06-29 & 끝 = 2014-08-10 & _ = 1404512824620 즉 시작과 끝은 두 배가 아닙니다. 시작과 끝이 마지막으로 수행 된 문자열이되도록 GetEvents를 변경합니다. 그런 다음 문자열을 적절한 형식으로 변환 할 수 있습니다.

관련 문제