2015-06-16 2 views
0

У меня есть функция javascript, вызывающая метод JsonResult, а метод JsonResult отправляет данные обратно функции, но когда я тестирую ее с предупреждением в javascript возвращает значение Undefined. Я проверил пару аналогичных ответов на SO, как это JsonResult returns null for Jquery .ajax и Jquery ajax not returning data [duplicate], но они имеют дело с POST, а не GET, могу ли я получить некоторые рекомендации относительно того, что я делаю неправильно или направил туда, где я могу это понять? Конечный результат: мне нужно получить все возвращенные данные из метода JsonResult, а затем заполнить его в текстовые поля.JsonResult возвращает данные, но Jquery Ajax возвращает неопределенные данные, когда тип GET

метод

My JsonResult есть ..

public JsonResult myResult(string id) 
    { 
     dal = new AWDAL(); 
     List<CustomerToAdd> cust = dal.GetCustomerByID(id); 
     return Json(cust, JsonRequestBehavior.AllowGet); 
    } 

и мой JavaScript это ..

function DataToGet(whatever) { 
    alert(whatever.customerName); 
} 

function GetCustomerByCustomerID() { 
    //var id = selectCustomerID; 
    var result = ""; 
    $.ajax({ 
     type: "GET", 
     url: "@Url.Action("myResult", new { id = "1234-5678-9012" })", 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     success: function (data) { 
      return DataToGet(data); 
     } 
    }); 
} 

Я нашел способ делать то, что я хочу, но его для WebAPI2, я не использую WebAPI2 но это выглядит лучше, я даже не уверен, могу ли я использовать его, чтобы делать то, что хочу.

function formatItem(item) { 
    return item.Name + ': $' + item.Price; 
} 

function find() { 
    var id = $('#prodId').val(); 
    $.getJSON(uri + '/' + id) 
     .done(function (data) { 
     $('#product').text(formatItem(data)); 
     }) 
     .fail(function (jqXHR, textStatus, err) { 
     $('#product').text('Error: ' + err); 
     }); 
} 

EDIT заголовка ответа Response Header

Response Body

Response Body

+0

Итак, вопросы: можете ли вы попасть в точку останова, когда сама функция называется serveride, в функции myResult? можете ли вы ударить точку останова успеха в javascript? что происходит у обоих из них, переменные – Fallenreaper

+0

@Fallenreaper, я могу ударить JsonResult на сервере, но не могу ударить по клиентской стороне точки останова, он просто автоматически вызывает предупреждение – Chris

+0

У меня есть GetCustomerByCustomerID, вызываемый из выбранной строки из kendoui, я просто добавил идентификатор в GetCustomerByCustomerID, потому что у меня возникла проблема с передачей идентификатора выбранной строки функции – Chris

ответ

0

Полезная нагрузка представляет собой массив. Чтобы получить один элемент в полезной нагрузке, вам нужно будет получить его так: data[0] и каждое поле data[0].customerName.

+0

Пробовал, все еще возвращая один и тот же заголовок ответа и тело и все еще бросая «Не определено» в поле оповещения – Chris

+0

, чтобы выполнить функцию успеха, такую ​​как 'function (data, textStatus, jqXHR)', и проверить каждую информацию о параметрах, что может быть неправильным. – Oluwafemi

+0

Я взглянул на jqXHR, и он показывает, что у него есть имя_пользователя – Chris

Смежные вопросы