2012-07-03 4 views
2

Json을 통해 내 컨트롤러에 fullcalendar 이벤트를 전달하려고하지만 null이 컨트롤러로 전달됩니다. 내가 뭘 잘못 했니?json을 통해 컨트롤러에 fullcalander 이벤트 전달

<script type='text/javascript'> 
    $(document).ready(function() { 
     $(function() { 
      $("#save").click(function() { 
       var eventsFromCalendar = $('#calendar').fullCalendar('clientEvents'); 
       alert(eventsFromCalendar); 
       $.ajax(
      { 

       url: '@Url.Action("Save")', 
       type: 'POST', 
       traditional: true, 
       data: eventsFromCalendar, 
       dataType: "json", 
       success: function (response) { 
        alert(response); 
       }, 
       error: function (xhr) { 
        debugger; 
        alert(xhr); 
       } 

      }); 
      }); 
     }); 
    }); 
    </script> 

그리고 내 컨트롤러 : 나는의 JScript에 침입 eventsFromCalendar 볼 때

[HttpPost] 
public JsonResult Save(object[] data) 
{ 
    // edit the item and get it back 
    return Json("success"); 

} 

는 인구 괜찮 여기 내보기 코드입니다. JSON 텍스트로 이벤트를 변환

답변

3

시도 :

data:{ eventsJson: JSON.stringify(eventsFromCalendar) } 

(JSON.stringify Function (JavaScript) 참조)

이 그런 다음 컨트롤러 액션에 게시 된 JSON 문자열을 구문 분석 Json.NET 같은 도구를 사용

[HttpPost] 
public ActionResult Save(string eventsJson) 
{ 
    var events = JsonConvert.DeserializeObject<IEnumerable<Event>>(eventsJson); 
    return View(); 
} 

public class Event 
{ 
    public int Id { get; set; } 
    public string Title { get; set; } 
    public DateTime Start { get; set; } 
    public DateTime End { get; set; } 
} 
+0

을 stringify (스택 공간 밖)에 오류가 발생 했음에도 불구하고이 작업을 처리해 주셔서 감사합니다. 그러나이 작업은 eventsFromCalendar가 복잡하기 때문에 발생했다고 생각하십니까?) ... so 그것을 단순화하고 지금 좋아 보인다! – chris

관련 문제