Не удалось получить данные JSON в JQuery в MVC - PullRequest
1 голос
/ 08 декабря 2010

Я занимаюсь разработкой приложения в asp.net MVC. Мой сценарий:

 $(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}
                }); 
                }; 


});

Я не могу получить данные от действия моего контроллера:

    [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);
        }

В чем должна быть ошибка?На самом деле я пытаюсь прикрепить события к полному контролю над календарем.Я собираю записи и собираю данные JSon в своем действии.но не в состоянии показать это на моем каландре.что мне нужно сделать ?

Ответы [ 2 ]

3 голосов
/ 08 декабря 2010

Просто предположение, но я думаю, что проблема в том, что вы JSON сериализуете JsonResult вместо IList<CalendarDTO>.Вместо этого:

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

Почему бы вам не попробовать это?

  return Json(tasksList,JsonRequestBehavior.AllowGet);
0 голосов
/ 08 декабря 2010

Попробуйте 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...