2010-12-08 3 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で置き換えてください。