2010-12-08 6 views
1

내가 asp.net MVC에서 응용 프로그램을 개발하고 jQuery에에서 JSON 데이터를 가져올 수 없습니다 내 스크립트는 다음과 같습니다는 MVC

[HttpGet] 
     [AcceptVerbs(HttpVerbs.Get)] 

public JsonResult Calender(Guid id) 
     { 
     List<TasksToOfficer> officersTasks = null; 
     IList<CalendarDTO> tasksList = new List<CalendarDTO>(); 
     List<TasksToOfficer> officersTasksRecived = null; 
      if (String.Compare(Convert.ToString(Session["Role"]), RolesEnum.Admin.ToString())!=0) 
      { 
       officersTasksRecived = tasks_to_officer_management.GetTasksToOfficers(id); 
       foreach (TasksToOfficer tt in officersTasksRecived) 
       { 
        DateTime dt = Convert.ToDateTime(tt.Date); 
        tasksList.Add(new CalendarDTO 
        { 
        id=tt.Id, 
        title =tt.Description, 
        start = ToUnixTimespan(dt), 
        end = ToUnixTimespan(dt), 
        url =""} 
        ); 
       } 
      } 
      else 
       if (String.Compare(Convert.ToString(Session["Role"]), RolesEnum.Officer.ToString()) != 0) 
       { 
        officersTasksRecived = tasks_to_officer_management.GetTasksToOfficers(id); 
        foreach (TasksToOfficer tt in officersTasksRecived) 
        { 
         DateTime dt = Convert.ToDateTime(tt.Date); 
         tasksList.Add(new CalendarDTO 
         { 
          id = tt.Id, 
          title = tt.Description, 
          start = ToUnixTimespan(dt), 
          end = ToUnixTimespan(dt), 
          url = "" 
         } 
         ); 
        } 
       } 
      JsonResult resultToView = Json(tasksList); 
      return Json(resultToView,JsonRequestBehavior.AllowGet); 
     } 
: 내 컨트롤러 액션에서 데이터를 얻을 수 없습니다입니다

$(document).ready 
    (
     function() { 

     var officerid = document.getElementById('officerid').value; 
     url = "/TasksToOfficer/Calender/" + officerid; 

    var data= function() 
       { 
       $.ajax(
       { 
         type: 'GET', 
         url: url , 
         dataType: 'json', 
         data: {'start' : start,'end' : end} 
       }); 
       }; 


}); 

무엇이 오류가되어야합니까? 사실 나는 전체 캘린더 컨트롤에 이벤트를 첨부하려고합니다. 나는 레코드를 집어 내 작업에서 JSon 데이터를 작성하고있다. 내 캘린더에 표시 할 수 없습니다. 내가 뭘해야 해?

답변

3

그냥 추측하지만, 문제는 당신이 JSON을 IList<CalendarDTO> 대신 JsonResult를 직렬화한다는 것입니다. 대신에 :

JsonResult resultToView = Json(tasksList); 
    return Json(resultToView,JsonRequestBehavior.AllowGet); 

왜이 기능을 사용하지 않으시겠습니까?

return Json(tasksList,JsonRequestBehavior.AllowGet); 
0

해보십시오해서 getJSON은 :

$(document).ready(function() { 

    var officerid = document.getElementById('officerid').value; 
    $.getJSON("/TasksToOfficer/Calender/" + officerid, function (data) { 

     // do something with 'data' 


     }); 

    }); 

이 같은 조치에 브라우저를 가리킬 수 있습니다 http://yourdomain.com/TasksToOfficer/Calender/someID을하고 일부 데이터를 얻을 것이다 있는지 확인합니다. 'someID'를 존재하는 ID로 바꿉니다.